0

использовали такую ​​формулу:Альтернативы нескольких функций ЕСЛИ

=IF(L63=$AA$3;2;IF(L63=$AA$4;3;IF(L63=$AA$5;4;IF(L63=$AA$6;5;IF(L63=$AA$7;6;IF(L63=$AA$8;7;IF(L63=$AA$9;8;IF(L63=$AA$10;9;0)))))))) 

Но теперь нужно проверить больше, если еще так выше формула не может работать (слишком много if с).

Пробовал такого рода формулу:

=IF(L25=$AA$3;2;"")&IF(L25=$AA$4;3;"")&IF(L25=$AA$5;4;"")&IF(L25=$AA$6;5;"")&IF(L25=$AA$7;6;"")&IF(L25=$AA$8;7;"")&IF(L25=$AA$9;8;"")&IF(L25=$AA$10;9;"")&IF(L25=$AA$11;10;"")&IF(L25=$AA$12;11;"")&IF(L25=$AA$13;12;"")&IF(L25=$AA$14;13;"")&IF(L25=$AA$15;14;"")&IF(L25=$AA$16;15;"")&IF(L25=$AA$17;16;"")&IF(L25=$AA$18;17;"")&IF(L25=$AA$19;18;"")&IF(L25=$AA$20;19;"") 

Но есть проблема. Например, L25=$AA$3 (true) и в ячейке (например, ячейка M1 содержит приведенную выше формулу) отображает номер 2. Все в порядке. Но если, например, в ячейке M2 напишите формулу =IF(M1=2;2;0), она отобразит номер 0 вместо 2.

Где проблема?
Как получить номер 2 в ячейке M2?
Может быть, есть альтернативное решение?

+1

Вместо этого используйте LOOKUP. – pnuts

+0

Каковы данные в l25 и aa3? – exussum

+0

@pnuts Хорошее и простое решение, но это работает, только если значения в целевой области отсортированы. (MS-Excel-help): «Значения в lookup_vector должны быть помещены в порядке возрастания». – cars10m

ответ

3

С именем диапазона (скажем arrLook, содержащий столбец ячеек A> Н и сразу справа 2> 10 это должно работать для любого из A> H в L63:

= ВПР (L63, arrLook, 2, FALSE)

в М2, когда L63 содержит (первый элемент в arrLook).

Редактировать, чтобы уточнить

Если вы хотите, чтобы более «условия» просто расширяли массив.
PS Пожалуйста, используйте запятую вместо запятой (чтобы соответствовать настройке вашей локали).

+1

Как и раньше, не использовали' VLOOKUP' и не знают, как его использовать, а затем прочитайте это http://www.timeatlas.com/5_minute_tips/general/learning_vlookup_in_excel# .UgxVs3-Bb-Y как пример – user2465936

+0

@ user2465936 TQ. Хорошая точка зрения. Где Q о том, как использовать LOOKUP, я обычно ссылаюсь на страницу об этом (и должен был сделать это здесь).Извините, я не сделал (потому что я думал, что Q больше «что я использую?», Чем «как использовать?»). Для пользователя, обрабатывающего формулу, подобную вашей, и с вашим представителем, я удивлен, что LOOKUP не являются второстепенной. После SUM, COUNT и IFs они, вероятно, наиболее часто используются (могут помочь с точками ценового разрыва, налоговыми диапазонами, днями недели с дат и многое, многое другое). Поэтому я думаю, что у вас есть угощение в магазине. :-) – pnuts

0

Переводя конкретный вопрос (смотрит вверх значение и возвращающую увеличивающиеся число), вы можете использовать MATCH формулу:

=IF(COUNTIF($AA$3:$AA$20,L25)=0,"",MATCH(L25,$AA$3:$AA$20,0)+1) 

В общем говоря, хотя, вы можете создать таблицу поиска, а затем использовать функцию ВПР , Это полезно, потому что он может возвращать результаты, которые не инкрементальные номера:

__AA__ _AB_ 
1 
2 
3 Value1  2 
4 Value2  3 
5 Value2  4 
6 Value2  5 
7 Value2  6 
8 Value2  7 
9 Value2  8 
10 Value2  9 
11 Value2 10 
12 Value2 11 
13 Value2 12 
14 Value2 13 
15 Value2 14 
16 Value2 15 
17 Value2 16 
18 Value2 17 
19 Value2 18 
20 Value2 19 

формула:

=IF(COUNTIF($AA$3:$AA$20,L25)=0,"",VLOOKUP(L25,$AA$3:$AB$20,2,FALSE)) 

ПРИМЕЧАНИЕ: Возможно, потребуется изменить запятые, чтобы точка с запятой; чтобы формула работала над вашей версией Excel.