1

Имея это:Значение между диапазоном значений

Class Min Max 
Alfa 0  16.5 
Beta 16.5 18.5 
Charlie 18.5 25 
Delta 25  30 

И это:

Value X 
35.52600894 
26.27816853 
29.53159178 
29.84528548 
26.77130341 
25.07792506 
19.2850645 
42.77156244 
29.11485934 
29.5010482 
19.30982162 

Я хочу, чтобы клетка, чтобы иметь что-то вроде инструкции IF (он получил еще несколько значений в нем, не этот маленький, у него 8 класс). Оператор IF, который долгое время, вероятно, не сработает (предел IF равен 7) и является уродливым способом его выполнения. Я думал об использовании hlookup, но я не уверен, что это лучший выбор. Я также могу поменять местами столбцы внутри таблицы, поэтому я мог бы иметь «Min | Max | Class» Значения X находятся в столбце.

В основном: =IF(X>=0 && X<16.5, Alpha, IF(X>=16.5 && X<18.5, Beta, IF(...

+1

Проверьте 'VLOOKUP'. –

+0

Можете ли вы уточнить, что «у него есть еще несколько значений, а не это мало» и соответствуют ли ваши значения X (HLOOKUP) или столбцу (VLOOKUP)? Также, что может помочь. – pnuts

+0

С вашими данными, выровненными слева направо (вы хотите получить класс из первого столбца), вам придется использовать функции «Index» и «Match» или создать отдельную таблицу с этими значениями, в которую вы помещаете «Class 'в третьем столбце, то вы можете использовать' VLOOKUP'. –

ответ

2

Я думаю, что вы имеете в виду ВПР и было бы гораздо лучше пойти.

Сделать Ranges лист, как этот

Min Class 
0  Alfa 
16.5 Beta 
18.5 Charlie 
25  Delta 
30.5 Unidentified 

В вашей детализации использования листа формуле "= ВПР (A2, диапазоны A: B, 2, TRUE)" [Правдивая важно]

и вы получите

Value X Class 
35.52600894 Unidentified 
26.27816853 Delta 
29.53159178 Delta 
29.84528548 Delta 
26.77130341 Delta 
25.07792506 Delta 
19.2850645 Charlie 
42.77156244 Unidentified 
29.11485934 Delta 
29.5010482 Delta 
19.30982162 Charlie 
+0

Посмотрите, получилось ли я правильно: учитывая значение, он смотрит на значение Min, если оно находится между заданным min и next. Если True, возвращает класс. Это? – user2823183

+0

Довольно близко. Истинный говорит, что вы хотите приблизительный матч. С False 16.5 будет соответствовать только 16.5. В True это соответствует чему-либо 16,5 или выше, что не соответствует более высокому значению. 2 - это то, что говорит, что вам нужна колонка 2, класс (именно поэтому я переключил столбцы в диапазонах). – asantaballa

+0

Работал. Спасибо большое =) – user2823183

1

С вашего диапазона Макс имени MaxVal и ваш диапазон класса с именем Class, пожалуйста, попробуйте:

=IF(A2>30,"",INDEX(Class,MATCH(A2,MaxVal))) 

(отрегулируйте ссылки на костюм).

=MATCH() здесь используется параметр match_type1: «Функция MATCH найдет наибольшее значение, которое меньше или равно значению. Вы должны обязательно отсортировать свой массив в порядке возрастания.

Если параметр тип_сопоставления опущен, функция MATCH предполагает тип_сопоставления равное 1.»

Любое значение Х больше, чем 30 возвращает пустой (""), но текст может быть вставлен соответствующим образом (например, вместо того, чтобы "Unidentified""").

формула может быть упрощена путем удаления ловушки ошибок, если строка была вставлена ​​непосредственно под этикетки с Alpha под Class и 0 под Max. Также, удалив условие, аналогичным образом.

Нет необходимости указывать обе границы каждого диапазона.

INDEX/MATCH был выбран, а не VLOOKUP по причинам, указанным here.

PS Для греческого * альфа * ставка α обычно представляет собой альфа.

Редактировать повторно разъяснении

Самое простое решение для 25 является Delta, а не Charlie может вычесть небольшое количество из каждого значения Max, например, изменение 25 к = 25-1/1E100.

+1

Я закончил тем, что использовал asantaballa, потому что мне придется объяснить, как я должен заставить это работать и как это работает, и, честно говоря, его ответ в этом отношении проще, хотя я понимаю, почему Index + Match быстрее и эффективнее при больших итерациях. Спасибо за ваш ответ в любом случае =) – user2823183