Как я получаю ссылку на последнее вхождение значения в массиве в Excel?

Итак, если

A1:A5 = {3, 3, 4, 4, 5}

какую функцию я мог поместить в B1 для получения ссылки на A4 (ячейка, содержащая последнее вхождение 4)?

7
задан 05.06.2011, 10:35

3 ответа

Я предполагаю, что A1:A5 отсортированы в порядке возрастания. Если это так, можно использовать следующую формулу:

=ADDRESS(ROW(A1)-1+MATCH(4,A1:A5,1),COLUMN(A1))

Это даст вывод 4$A$.

Вот то, как это работает:

MATCH(4,A1:A5,1) находит индекс самого большого значения, которое является <= 4, предполагая, что A1:A5 отсортирован в порядке возрастания. То, что это действительно означает, - то, что это находит первое значение больше, чем 4 и просто возвращает индекс перед тем индексом.

ADDRESS(row,col) преобразовывает номер строки и номер столбца в ссылку на ячейку. Для номера столбца я просто использовал столбец списка: COLUMN(A1). Для номера строки я использовал индекс, возвращенный из MATCH функционируйте как смещение с начала списка (ROW(A1)-1). Вы могли опустить ROW(A1)-1 и это все еще работало бы в этом случае, но это перестанет работать как только Ваш список, запущенный где-нибудь кроме строки 1.

Обратите внимание, что для использования этого ссылочного значения где-то в другом месте необходимо будет использовать: INDIRECT(B1).

5
ответ дан 07.12.2019, 15:01

Вы могли использовать формулу массива для нахождения МАКСА строк

{=INDEX(A1:A5,MAX((A1:A5=4)*(ROW(A1:A5))),1)}

Войдите с control+shift+enter. МАКС. часть возвратит самый большой номер строки всех ячеек, которые содержат '4'. Это может быть всем, в чем Вы нуждаетесь, но я перенес это в ИНДЕКСНУЮ функцию, которая указывает на ячейку в случае, если Вам нужен тот дополнительный шаг.

1
ответ дан 07.12.2019, 15:01

Существует объяснение здесь (поиск "F94"), но быть предупрежденным, это не симпатично!

0
ответ дан 07.12.2019, 15:01

Теги

Похожие вопросы