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

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

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

COUNTA(Runs!A:A)

Эта другая функция дает мне ссылку на ячейку (содержимое ячейки), но я не могу объединить ее с формулой LOOKUP:

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

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

РЕДАКТИРОВАТЬ: в диапазоне строк нет пустых строк.

С уважением

3 ответа3

2

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

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

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

заменить работает!A3:A6 с OFFSET($ 3,0,0 $, COUNTA($ A $ 3:$ A $ 1000), 1)

Вы можете получить немного фантазии с динамическим диапазоном определения http://support.microsoft.com/kb/830287

0

Я закончил тем, что делал это. Спасибо всем за ваши комментарии, ответ от 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)))

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