Excel-formel: FILTER med flera ELLER-kriterier -

Innehållsförteckning

Sammanfattning

För att extrahera data med flera ELLER-villkor kan du använda FILTER-funktionen tillsammans med MATCH-funktionen. I exemplet som visas är formeln i F9:

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

där objekt (B3: B16), färger (C3: C16) och städer (D3: D16) heter områden.

Denna formel returnerar data där artikeln är (tshirts ELLER hoodie) OCH färgen är (röd ELLER blå) OCH staden är (denver ELLER seattle).

Förklaring

I detta exempel anges kriterier i området F5: H6. Logiken för formeln är:

artikeln är (tshirt ELLER hoodie) OCH färgen är (röd ELLER blå) OCH city är (Denver ELLER Seattle)

Filtreringslogiken för denna formel (inkluderingsargumentet) tillämpas med ISNUMBER- och MATCH-funktionerna, tillsammans med boolesk logik som tillämpas i en arrayoperation.

MATCH är konfigurerad "bakåt", med uppslagsvärden som kommer från data och kriterier som används för uppslagsmatrisen. Till exempel är det första villkoret att artiklarna måste vara antingen en T-shirt eller en luvtröja. För att tillämpa detta villkor är MATCH inställt så här:

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

Eftersom det finns 12 värden i data, blir vi resultatet en matris med 12 värden så här:

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

Denna matris innehåller antingen # N / A-fel (ingen matchning) eller siffror (matchning). Anmälningsnummer motsvarar föremål som är antingen Tshirt eller Hoodie. För att konvertera den här matrisen till SANT och FALSKA värden är MATCH-funktionen insvept i ISNUMBER-funktionen:

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

som ger en array som denna:

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

I den här matrisen motsvarar de Sanna värdena t-shirt eller hoodie.

Den fullständiga formeln innehåller tre uttryck som ovan som används för att inkludera argumentet för 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

Efter att MATCH och ISNUMBER har utvärderats har vi tre matriser som innehåller SANT och FALSKA värden. Den matematiska funktionen att multiplicera dessa matriser tillsammans tvingar de Sanna och FALSKA värdena till 1s och 0s, så att vi kan visualisera matriserna vid denna punkt så här:

(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, enligt reglerna för boolesk aritmetik, är en enda grupp:

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

som blir inkludera argumentet i FILTER-funktionen:

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

Det slutliga resultatet är de tre raderna med data som visas i F9: H11

Med hårdkodade värden

Även om formeln i exemplet använder kriterier som anges direkt i kalkylbladet kan kriterierna hårdkodas som matriskonstanter istället så här:

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

Intressanta artiklar...