Excel formel: FILTER med flere ELLER kriterier -

Indholdsfortegnelse

Resumé

For at udtrække data med flere ELLER betingelser kan du bruge FILTER-funktionen sammen med MATCH-funktionen. I det viste eksempel er formlen i F9:

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

hvor emner (B3: B16), farver (C3: C16) og byer (D3: D16) er navngivet områder.

Denne formel returnerer data, hvor varen er (t-shirts ELLER hættetrøje) OG farve er (rød ELLER blå) OG byen er (Denver ELLER seattle).

Forklaring

I dette eksempel indtastes kriterier i området F5: H6. Logikken med formlen er:

varen er (tshirt ELLER hættetrøje) OG farven er (rød ELLER blå) OG byen er (Denver ELLER seattle)

Filtreringslogikken med denne formel (inkluderingsargumentet) anvendes med ISNUMBER- og MATCH-funktionerne sammen med boolsk logik anvendt i en array-operation.

MATCH er konfigureret "baglæns" med opslagsværdier, der kommer fra dataene, og kriterier, der bruges til opslagsarrayet. For eksempel er den første betingelse, at genstande skal være enten en T-shirt eller en hættetrøje. For at anvende denne betingelse er MATCH konfigureret således:

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

Da der er 12 værdier i dataene, er vi resultatet en matrix med 12 værdier som denne:

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

Denne matrix indeholder enten # N / A-fejl (ingen match) eller tal (match). Bekendtgørelsesnumre svarer til varer, der enten er Tshirt eller hættetrøje. For at konvertere denne matrix til SANDE og FALSKE værdier er MATCH-funktionen pakket ind i ISNUMBER-funktionen:

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

som giver en matrix som denne:

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

I dette array svarer de SANDE værdier til tshirt eller hættetrøje.

Den fulde formel indeholder tre udtryk som ovenstående, der bruges til inkluderingsargumentet for FILTER-funktionen:

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

Når MATCH og ISNUMBER er evalueret, har vi tre arrays, der indeholder TRUE og FALSE værdier. Matematikoperationen ved at multiplicere disse arrays sammen tvinger de SANDE og FALSE-værdier til 1s og 0s, så vi kan visualisere arrays på dette tidspunkt sådan:

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

Resultatet efter reglerne for boolsk aritmetik er et enkelt array:

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

som bliver inkludere-argumentet i FILTER-funktionen:

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

Det endelige resultat er de tre rækker data vist i F9: H11

Med hårdkodede værdier

Selvom formlen i eksemplet bruger kriterier, der er indtastet direkte på regnearket, kan kriterierne være hårdkodede som matrixkonstanter i stedet for denne:

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

Interessante artikler...