найти последнее совпадение в столбце, используя встроенные функции в excel
У меня есть книга excel с несколькими экземплярами одного и того же идентификатора клиента. Таким образом, клиент может появиться в списке не один раз. Я хотел бы найти последний (ближайший к нижнему) экземпляр идентификатора клиента, чтобы затем я мог посмотреть ту же строку для получения дополнительной информации. VLOOKUP показывает первый экземпляр, мне нужен последний.
Итак, как найти последний экземпляр данного идентификатора клиента, используя встроенные функции? Я бы предпочел не писать макрос для этого.
1 ответов
Предположим, вы хотите найти последний экземпляр id "id_1"
в границах A2:A8
и возвращает соответствующее значение из диапазона B2:B8
, а затем использовать:
=LOOKUP(2,1/(A2:A8="id_1"),B2:B8)
если вы хотите вернуть индекс из последнего 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
.