Я пытаюсь оценить следующее выражение в Excel:

IF(A2:C6="apple",ROW(A2:C6)-ROW(A2)+1,ROW(C6)+1),2)

Если в массиве содержится apple , условие if будет возвращено

ROW(A2:C6)-ROW(A2)+1

а также

ROW(A2:C6) = 2 

так

ROW(A2:C6)-ROW(A2)+1 = 2-2+1 = 1 

Если условие оценивается как False, оно вернет

ROW(C6)+1 = 6+1 = 7  

Я пытаюсь заставить формулы с этого сайта работать.

1 ответ1

3

Выражение IF возвращает "массив" значений

=IF(A2:C6="apple",ROW(A2:C6)-ROW(A2)+1,ROW(C6)+1)

Для каждой ячейки в A2:C6, которая содержит "яблоко", возвращается относительный номер строки, например, если Apple находится в A2, тогда возвращается 1, если Apple находится в A3, 2 возвращается и т.д. Если "яблоко" не в любой ячейке возвращается значение по умолчанию ROW(C6)+1, например, если "Apple" находится только в A3 и C6, вы получите этот результат, возвращенный вышеупомянутым

{7,7,7;2,7,7;7,7,7;7,7,7;7,7,5}

Вы можете видеть это, помещая формулу в ячейку, затем нажимая F2 и затем F9

Ложная часть формулы обычно не требуется - этого будет достаточно

=IF(A2:C6="apple",ROW(A2:C6)-ROW(A2)+1)

тогда значения FALSE возвращают FALSE ....., который в любом случае игнорируется SMALL

... так что лучшая формула будет выглядеть примерно так:

=INDEX(B2:B6,SMALL(IF(A2:A6="apple",ROW(A2:A6)-ROW(A2)+1),2))

Это даст вам соответствующее значение в B2:B6 для 2-й строки с "Apple" в A2:A6 - нет необходимости смотреть на A2:C6, когда фрукты находятся только в первом столбце - это "формула массива" который должен быть подтвержден с помощью CTRL+SHIFT+ENTER

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .