
Обща формула
=FILTER(data,(dates>=A1)*(dates<=A2),"No data")
Обобщение
За да филтрирате данните, за да включите записи между две дати, можете да използвате функцията FILTER с логическа логика. В показания пример формулата във F8 е:
=FILTER(B5:D15,(C5:C15>=F5)*(C5:C15<=G5),"No data")
Който връща записи с дати между 15 януари и 15 март включително.
Обяснение
Тази формула разчита на функцията FILTER за извличане на данни въз основа на логически тест, създаден с логически логически израз. Аргументът на масива се предоставя като 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))
Имайте предвид, че във всеки набор от скоби има единадесет резултата, по един за всяка дата в данните. Операцията за умножение принуждава стойностите TRUE FALSE до 1s и 0s, така че крайният резултат е единичен масив като този:
(1;1;1;1;0;0;0;0;0;0;0)
Обърнете внимание, че четирите единици в масива съответстват на четирите дати, които преминават теста. Този масив се доставя на функцията FILTER и се използва за филтриране на данните. Само редове, където резултатът е 1, влизат в крайния изход.
Аргументът "if_empty" е зададен на "Няма данни", в случай че не бъдат намерени съвпадащи данни.