Formula Excel: FILTRU cu mai multe criterii SAU

Cuprins

rezumat

Pentru a extrage date cu condiții multiple SAU, puteți utiliza funcția FILTER împreună cu funcția MATCH. În exemplul prezentat, formula din F9 este:

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

unde articolele (B3: B16), culorile (C3: C16) și orașele (D3: D16) sunt denumite intervale.

Această formulă returnează date în care elementul este (tricouri SAU hanorac) ȘI culoarea este (roșu SAU albastru) ȘI orașul este (denver SAU seattle).

Explicaţie

În acest exemplu, criteriile sunt introduse în intervalul F5: H6. Logica formulei este:

elementul este (tricou SAU hanorac) ȘI culoarea este (roșu SAU albastru) ȘI orașul este (denver SAU seattle)

Logica de filtrare a acestei formule (argumentul include) se aplică cu funcțiile ISNUMBER și MATCH, împreună cu logica booleană aplicată într-o operație de matrice.

MATCH este configurat „înapoi”, cu valori de căutare provenite din date și criterii utilizate pentru matricea de căutare. De exemplu, prima condiție este ca articolele să fie fie un tricou, fie un hanorac. Pentru a aplica această condiție, MATCH este configurat astfel:

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

Deoarece există 12 valori în date, rezultatul este un tablou cu 12 valori ca aceasta:

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

Această matrice conține fie # erori N / A (fără potrivire), fie numere (potrivire). Numerele de notificare corespund articolelor care sunt fie tricou, fie hanorac. Pentru a converti această matrice în valori ADEVĂRATE și FALSE, funcția MATCH este înfășurată în funcția ISNUMBER:

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

care produce o matrice ca aceasta:

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

În această matrice, valorile TRUE corespund tricoului sau hanoracului.

Formula completă conține trei expresii precum cele de mai sus utilizate pentru argumentul include al funcției 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

După ce MATCH și ISNUMBER sunt evaluate, avem trei matrice care conțin valori ADEVĂRATE și FALSE. Operația matematică de înmulțire a acestor matrice impune valorile TRUE și FALSE la 1s și 0s, astfel încât să putem vizualiza matricile în acest moment astfel:

(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)

Rezultatul, urmând regulile aritmeticii booleene, este o singură matrice:

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

care devine argumentul include în funcția FILTER:

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

Rezultatul final sunt cele trei rânduri de date prezentate în F9: H11

Cu valori codificate greu

Deși formula din exemplu folosește criterii introduse direct pe foaia de lucru, criteriile pot fi codificate ca constante de matrice în schimb, astfel:

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

Articole interesante...