
Общая формула
(=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(A1,"mmyy"),0)))
Резюме
Чтобы найти первую запись в таблице по месяцам и годам, вы можете использовать формулу массива, основанную на функциях ИНДЕКС, ПОИСКПОЗ и ТЕКСТ.
функция ПРОСМОТР с функцией ТЕКСТ. В показанном примере формула в F5:
=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(E5,"mmyy"),0))
где «запись» - именованный диапазон C5: C13, «дата» - именованный диапазон B5: B13, а E5 содержит действительную дату.
Это формула массива, и ее нужно вводить с помощью Ctrl + Shift + Enter.
Объяснение
Примечание: значения в E5: E7 являются фактическими датами, отформатированными в пользовательском числовом формате «ммгг».
Работая изнутри наружу, выражение:
MATCH(TRUE,TEXT(date,"mmyy")=TEXT(E5,"mmyy")
использует функцию ТЕКСТ для создания массива строк в формате «ммгг»:
(«0117»; «0117»; «0117»; «0217»; «0217»; «0217»; «0317»; «0317»; «0317»)
которые сравниваются с одной строкой на основе значения в E5, «0117». Результатом является массив значений ИСТИНА / ЛОЖЬ:
(ИСТИНА; ИСТИНА; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ)
которые передаются в функцию ПОИСКПОЗ как поисковый массив со значением поиска ИСТИНА и нулевым типом соответствия для точного совпадения. В режиме точного совпадения функция ПОИСКПОЗ возвращает позицию первого ИСТИНА в массиве, которая равна 1 в формуле в F5. Эта позиция входит в ИНДЕКС как номер строки с массивом, основанным на именованном диапазоне "запись":
=INDEX(entry,1)
Индекс возвращает элемент внутри записи в указанной позиции.
Примечание: если запись для данного месяца и года не найдена, эта формула вернет # N / A.
Первая запись на основе сегодняшней даты
Чтобы получить первую запись для данного месяца и года на основе сегодняшней даты, вы можете адаптировать формулу для использования функции СЕГОДНЯ вместо значения в E5:
(=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(TODAY(),"mmyy"),0)))