Альтернативы множественным функциям ПЧ

Использовали такую ​​формулу:

=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 (правда) и в ячейке (например, ячейка M1 содержит приведенную выше формулу) отображает число 2, Все в порядке. Но если, например, в клетке M2 написать формулу =IF(M1=2;2;0), показывает номер 0 вместо 2,

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

2 ответа

Решение

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

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

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

Изменить, чтобы уточнить

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

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

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

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

    __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.

Другие вопросы по тегам