Загальна формула
(=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(A1,"mmyy"),0)))
Резюме
Для пошуку першого запису в таблиці за місяцями та роками можна використовувати формулу і масив на основі функцій INDEX, MATCH та TEXT.
функція LOOKUP із функцією TEXT. У наведеному прикладі формула в F5 має вигляд:
=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(E5,"mmyy"),0))
де "запис" - іменований діапазон C5: C13, "дата" - іменований діапазон B5: B13, а E5 містить дійсну дату.
Це формула масиву, і її потрібно вводити за допомогою control + shift + enter.
Пояснення
Примітка: значення в E5: E7 - це фактичні дати, відформатовані у спеціальному форматі чисел "mmyy".
Працюючи зсередини, вираз:
MATCH(TRUE,TEXT(date,"mmyy")=TEXT(E5,"mmyy")
використовує функцію TEXT для створення масиву рядків у форматі "mmyy":
("0117"; "0117"; "0117"; "0217"; "0217"; "0217"; "0317"; "0317"; "0317")
які порівнюються з одним рядком на основі значення в E5, "0117". Результат - масив значень TRUE / FALSE:
(TRUE; TRUE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE)
які подаються у функцію MATCH як масив підстановки, зі значенням пошуку TRUE і типом відповідності нулем для точного збігу. У режимі точного збігу функція MATCH повертає позицію першої TRUE в масиві, яка дорівнює 1 у формулі у F5. Ця позиція переходить у INDEX як номер рядка з масивом на основі іменованого діапазону "запис":
=INDEX(entry,1)
Index повертає елемент всередині запису у вказану позицію.
Примітка: якщо запис не знайдено для даного місяця та року, ця формула поверне # N / A.
Перший запис на основі сьогоднішньої дати
Щоб отримати перший запис для даного місяця та року на основі сьогоднішньої дати, ви можете адаптувати формулу, щоб використовувати функцію TODAY замість значення в E5:
(=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(TODAY(),"mmyy"),0)))