![](https://cdn.wiki-base.com/4979160/excel_formula_filter_with_multiple_or_criteria__2.png.webp)
Обобщение
За да извлечете данни с множество условия ИЛИ, можете да използвате функцията 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)))