Последнее появление заданной строки в столбце Excel

Последнее появление заданной строки в столбце Excel

Я использую функцию LOOKUP, чтобы найти последнее появление заданной строки в указанном столбце, например так:

LOOKUP(A3;Runs!D3:D6;Runs!A3:A6)

Однако границы в векторе жестко запрограммированы: Runs!A3:А6. Я хочу, чтобы это значение динамически устанавливалось в последнюю ячейку с данными столбца. Я нашел эту формулу, которая дает последний индекс строки:

COUNTA(Runs!A:A)

Эта другая функция возвращает мне ссылку на ячейку (содержимое ячейки), но я не могу объединить ее с формулой ПРОСМОТР:

INDIRECT("Runs!A"&COUNTA(Runs!A:A))

Есть ли способ динамически установить верхнюю границу для LOOKUP?

EDIT: в диапазоне строк нет пустых строк.

С уважением

решение1

Я понял — проблема в том, чтобы заставить ваш динамический диапазон работать как спецификация диапазона в LOOKUP. Вы почти у цели. Попробуйте это:

    LOOKUP(A3;INDIRECT("Runs!D3:D"&COUNTA(Runs!D:D));Runs!A3:A6)

решение2

Функция offset() решит вашу проблему

заменить Runs!A3:A6 наСМЕЩ($A$3;0;0;СЧЁТA($A$3:$A$1000);1)

вы можете немного пофантазировать с помощью Dynamic Define Rangehttp://support.microsoft.com/kb/830287

решение3

Я в итоге сделал это. Спасибо всем за комментарии, ответ fixer1234 был особенно полезен. LOOKUP не давал точных результатов, поэтому я заменил его на пару INDEX/MATCH. Также добавил проверку N/A.

IF(ISNA(INDEX(INDIRECT("Runs!A3:A"&COUNTA(Runs!A:A)), MATCH(A3, INDIRECT("Runs!D3:D"&COUNTA(Runs!D:D)), 0))), "", INDEX(INDIRECT("Runs!A3:A"&COUNTA(Runs!A:A)), MATCH(A3, INDIRECT("Runs!D3:D"&COUNTA(Runs!D:D)), 0)))

Связанный контент