найти последнее совпадение в столбце, используя встроенные функции в excel

У меня есть книга excel с несколькими экземплярами одного и того же идентификатора клиента. Таким образом, клиент может появиться в списке не один раз. Я хотел бы найти последний (ближайший к нижнему) экземпляр идентификатора клиента, чтобы затем я мог посмотреть ту же строку для получения дополнительной информации. VLOOKUP показывает первый экземпляр, мне нужен последний.

Итак, как найти последний экземпляр данного идентификатора клиента, используя встроенные функции? Я бы предпочел не писать макрос для этого.

1 ответов


Предположим, вы хотите найти последний экземпляр id "id_1" в границах A2:A8 и возвращает соответствующее значение из диапазона B2:B8, а затем использовать:

=LOOKUP(2,1/(A2:A8="id_1"),B2:B8)

enter image description here


если вы хотите вернуть индекс из последнего intance id "id_1" в границах A2:A8 использовать:

=MATCH(2,1/(A2:A8="id_1"))

С записи массива (CTRL+ SHIFT+ ENTER).

если вы хотите вернуть строки номер из последнего intance id "id_1" использовать:

=LOOKUP(2,1/(A2:A8="id_1"),ROW(A2:A8))

этот синтаксис-особый трюк:(A2:A8="id_1") оценивает в {TRUE,FALSE,FALSE,TRUE,...}. Далее, предполагая, что TRUE=1 и FALSE=0, часть 1/{TRUE,FALSE,FALSE,TRUE,...} дает {1,#DIV0!,#DIV0!,1,..}.

чтобы вернуть последнее число в результирующем массиве lookup_value должно быть больше, чем любое значение в массиве ({1,#DIV0!,#DIV0!,1,..} в нашем случае). Поскольку массив содержит только 1 или #DIV0!, мы можем забрать 2 as lookup_value, потому что он всегда больше, чем 1.