Формула 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 of 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)

де TRUE представляє дати в тому ж місяці та році. Потім число 1 ділиться на цей масив. Результат - масив із одиниць або ділення на нульові помилки (# DIV / 0!):

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

який переходить у LOOKUP як масив підстановки. LOOKUP передбачає, що дані сортуються у порядку зростання та завжди виконують приблизний збіг. Коли значення підстановки 2 не вдається знайти, LOOKUP збігається з попереднім значенням, отже пошук збігається з останнім 1 у масиві.

Нарешті, LOOKUP повертає відповідне значення в result_vector, яке містить суми в C5: C13.

Цікаві статті...