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

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

(=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)))

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