![](https://cdn.wiki-base.com/2988622/excel_formula_filter_with_complex_multiple_criteria__2.png.webp)
Обобщение
За да филтрирате и извличате данни въз основа на множество сложни критерии, можете да използвате функцията FILTER с верига от изрази, които използват логическа логика. В показания пример формулата в G5 е:
=FILTER(B5:E16,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4))
Тази формула връща данни, където:
акаунтът започва с "x" И регионът е "изток", а месецът НЕ е април.
Обяснение
В този пример трябва да изградим логика, която филтрира данните, за да включва:
акаунтът започва с "x" И регионът е "изток", а месецът НЕ е април.
Филтриращата логика на тази формула (аргументът за включване) се създава чрез свързване на три израза, които използват логическа логика за масиви в данните. Първият израз използва функцията LEFT, за да провери дали Акаунтът започва с "x":
LEFT(B5:B16)="x" // account begins with "x"
Резултатът е масив от TRUE FALSE стойности като този:
(TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE)
Вторият израз тества дали Регионът е "изток" с оператора, равен на (=):
C5:C16="east" // region is east
Резултатът е друг масив:
(FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;TRUE)
Третият израз използва функцията MONTH с функцията NOT, за да провери дали месецът не е април:
NOT(MONTH(D5:D16)=4) // month is not april
което дава:
(FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE)
Обърнете внимание, че функцията NOT обръща резултата от израза MONTH.
И трите масива се умножават заедно. Операцията по математика принуждава стойностите TRUE и FALSE до 1s и 0s, така че в този момент можем да визуализираме аргумента за включване по следния начин:
(1;0;1;1;1;0;0;0;1;1;0;1)* (0;0;1;1;1;0;1;0;0;1;0;1)* (0;0;0;1;1;1;1;1;1;1;1;1)
Булево умножение съответства на логическата функция И, така че крайният резултат е единичен масив като този:
(0;0;0;1;1;0;0;0;0;1;0;1)
Функцията FILTER използва този масив за филтриране на данните и връща четирите реда, съответстващи на 1s в масива.
Критерии за разширяване
Изразите, използвани за създаване на аргумента за включване във филтър, могат да бъдат разширени, ако е необходимо, за да се справят с още по-сложни филтри. Например, за да филтрирате допълнително данните, за да включите само редове, където сумата е> 10000, можете да използвате формула като тази:
=FILTER(B5:E16,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4)*(E5:E16>10000))