
Общая формула
=FILTER(data,(dates>=A1)*(dates<=A2),"No data")
Резюме
Чтобы отфильтровать данные для включения записей между двумя датами, вы можете использовать функцию ФИЛЬТР с логической логикой. В показанном примере формула в F8:
=FILTER(B5:D15,(C5:C15>=F5)*(C5:C15<=G5),"No data")
Возвращает записи с датами с 15 января по 15 марта включительно.
Объяснение
Эта формула использует функцию ФИЛЬТР для извлечения данных на основе логического теста, созданного с помощью логического выражения. Аргумент массива представлен как B5: D15, который содержит полный набор данных без заголовков. Включают аргумент основан на двух логических сравнений:
(C5:C15>=F5)*(C5:C15<=G5)
Выражение слева проверяет, больше ли даты или равны дате «От» в F5. Это пример логической логики. Выражение справа проверяет, меньше ли даты или равны дате «До» в G5. Два выражения соединяются с помощью оператора умножения, который создает отношение И.
После вычисления логических выражений мы имеем:
((TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE))* ((TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE))
Обратите внимание, что в каждом наборе круглых скобок содержится одиннадцать результатов, по одному для каждой даты в данных. Операция умножения переводит значения ИСТИНА ЛОЖЬ в единицы и нули, поэтому конечный результат представляет собой один массив, подобный этому:
(1;1;1;1;0;0;0;0;0;0;0)
Обратите внимание, что четыре единицы в массиве соответствуют четырем датам, прошедшим тест. Этот массив передается в функцию FILTER и используется для фильтрации данных. Только строки, в которых результат равен 1, попадают в окончательный результат.
Для аргумента «if_empty» устанавливается значение «Нет данных», если совпадающие данные не найдены.