
Общая формула
=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.