Формула Excel: Получить последнюю запись по месяцу и году -

Содержание

Общая формула

=LOOKUP(2,1/(TEXT(dates,"mmyy")=TEXT(A1,"mmyy")),values)

Резюме

Чтобы найти последнюю запись в таблице по месяцам и годам, вы можете использовать функцию ПРОСМОТР с функцией ТЕКСТ. В показанном примере формула в F5:

=LOOKUP(2,1/(TEXT($B$5:$B$13,"mmyy")=TEXT(E5,"mmyy")),$C$5:$C$13)

где B5: B13 и E5: E7 содержат действительные даты, а C5: C13 - суммы.

Объяснение

Примечание: значение lookup_value, равное 2, преднамеренно больше любых значений в lookup_vector, следуя концепции bignum.

Работая изнутри наружу, выражение:

(TEXT($B$5:$B$13,"mmyy")=TEXT(E5,"mmyy"))

генерирует строки типа «0117» с использованием значений в столбцах B и E, которые затем сравниваются друг с другом. Результатом является такой массив:

(TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE)

где ИСТИНА представляет собой даты одного месяца и года. Затем число 1 делится на этот массив. Результатом является массив ошибок либо единиц, либо деления на ноль (# DIV / 0!):

(1;1;1;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!)

который входит в ПРОСМОТР как поисковый массив. ПРОСМОТР предполагает, что данные отсортированы в порядке возрастания и всегда имеют приблизительное совпадение. Когда значение поиска 2 не может быть найдено, ПРОСМОТР будет соответствовать предыдущему значению, поэтому поиск будет соответствовать последнему 1 в массиве.

Наконец, ПРОСМОТР возвращает соответствующее значение в result_vector, которое содержит суммы в C5: C13.

Интересные статьи...