Формула на Excel: ФИЛТЪР с множество ИЛИ критерии -

Съдържание

Обобщение

За да извлечете данни с множество условия ИЛИ, можете да използвате функцията FILTER заедно с функцията MATCH. В показания пример формулата във F9 е:

=FILTER(B5:D16, ISNUMBER(MATCH(items,F5:F6,0))* ISNUMBER(MATCH(colors,G5:G6,0))* ISNUMBER(MATCH(cities,H5:H6,0)))

където елементи (B3: B16), цветове (C3: C16) и градове (D3: D16) са наречени диапазони.

Тази формула връща данни, когато елементът е (тениски ИЛИ качулка) И цветът е (червен ИЛИ син) И градът е (Денвър ИЛИ Сиатъл).

Обяснение

В този пример критериите се въвеждат в диапазона F5: H6. Логиката на формулата е:

артикулът е (тениска ИЛИ качулка) И цветът е (червен ИЛИ син) И градът е (Денвър ИЛИ Сиатъл)

Филтриращата логика на тази формула (аргументът за включване) се прилага с функциите ISNUMBER и MATCH, заедно с булева логика, приложена в операция с масив.

MATCH е конфигуриран „назад“, със справочни стойности, идващи от данните, и критерии, използвани за справочния масив. Например първото условие е предметите да бъдат или тениска, или качулка. За да приложите това условие, MATCH се настройва по следния начин:

MATCH(items,F5:F6,0) // check for tshirt or hoodie

Тъй като в данните има 12 стойности, резултатът е масив с 12 стойности като тази:

(1;#N/A;#N/A;2;#N/A;2;2;#N/A;1;#N/A;2;1)

Този масив съдържа или # N / A грешки (без съвпадение), или числа (съвпадение). Номерата за известия съответстват на артикули, които са или тениска или качулка. За да преобразувате този масив в стойности TRUE и FALSE, функцията MATCH се увива във функцията ISNUMBER:

ISNUMBER(MATCH(items,F5:F6,0))

което дава масив като този:

(TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE)

В този масив стойностите TRUE съответстват на тениска или качулка.

Пълната формула съдържа три израза като горния, използван за аргумента за включване на функцията FILTER:

ISNUMBER(MATCH(items,F5:F6,0))* // tshirt or hoodie ISNUMBER(MATCH(colors,G5:G6,0))* // red or blue ISNUMBER(MATCH(cities,H5:H6,0))) // denver or seattle

След като MATCH и ISNUMBER бъдат оценени, имаме три масива, съдържащи TRUE и FALSE стойности. Математическата операция за умножаване на тези масиви принуждава стойностите TRUE и FALSE до 1s и 0s, така че можем да визуализираме масивите в този момент по следния начин:

(1;0;0;1;0;1;1;0;1;0;1;1)* (1;0;1;1;0;1;0;0;0;0;0;1)* (1;0;1;0;0;1;0;1;1;0;0;1)

Резултатът, следвайки правилата на булевата аритметика, е единичен масив:

(1;0;0;0;0;1;0;0;0;0;0;1)

което се превръща в аргумент за включване във функцията FILTER:

=FILTER(B5:D16,(1;0;0;0;0;1;0;0;0;0;0;1))

Крайният резултат са трите реда данни, показани във F9: H11

С твърдо кодирани стойности

Въпреки че формулата в примера използва критерии, въведени директно в работния лист, вместо това критериите могат да бъдат кодирани твърдо като константи на масива по следния начин:

=FILTER(B5:D16, ISNUMBER(MATCH(items,("Tshirt";"Hoodie"),0))* ISNUMBER(MATCH(colors,("Red";"Blue"),0))* ISNUMBER(MATCH(cities,("Denver";"Seattle"),0)))

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