Excel vzorec: FILTR s více kritérii NEBO

Obsah

souhrn

Chcete-li extrahovat data s více podmínkami OR, můžete použít funkci FILTER společně s funkcí MATCH. V zobrazeném příkladu je vzorec v F9:

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

kde položky (B3: B16), barvy (C3: C16) a města (D3: D16) jsou pojmenovány rozsahy.

Tento vzorec vrací data, kde položka je (trička NEBO mikina) A barva je (červená NEBO modrá) A město je (Denver NEBO Seattle).

Vysvětlení

V tomto příkladu jsou kritéria zadána v rozsahu F5: H6. Logika vzorce je:

položka je (tričko NEBO mikina) A barva je (červená NEBO modrá) A město je (denver NEBO seattle)

Logika filtrování tohoto vzorce (argument include) se použije u funkcí ISNUMBER a MATCH společně s logickou logikou použitou v operaci pole.

MATCH je nakonfigurován „zpět“, s vyhledávacími hodnotami pocházejícími z dat a kritérii použitými pro vyhledávací pole. Například první podmínkou je, že položky musí být buď tričko nebo mikina. Chcete-li použít tuto podmínku, MATCH je nastaven takto:

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

Protože v datech je 12 hodnot, výsledkem je pole s 12 hodnotami, jako je tato:

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

Toto pole obsahuje buď # N / A chyby (žádná shoda) nebo čísla (shoda). Čísla oznámení odpovídají položkám, které jsou buď tričko nebo mikina. Chcete-li toto pole převést na TRUE a FALSE hodnoty, je funkce MATCH zabalena do funkce ISNUMBER:

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

což dává takové pole:

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

V tomto poli hodnoty TRUE odpovídají tričku nebo mikině.

Úplný vzorec obsahuje tři výrazy, jako výše uvedené, které se používají pro argument include funkce 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

Po vyhodnocení MATCH a ISNUMBER máme tři pole obsahující hodnoty PRAVDA a NEPRAVDA. Matematická operace vynásobení těchto polí společně vynutí hodnoty TRUE a FALSE na 1 s a 0 s, takže můžeme v tomto bodě vizualizovat pole takto:

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

Výsledkem podle pravidel booleovské aritmetiky je jedno pole:

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

který se stane argumentem zahrnout do funkce FILTER:

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

Konečným výsledkem jsou tři řádky dat zobrazené v F9: H11

S pevně zakódovanými hodnotami

Přestože vzorec v příkladu používá kritéria zadaná přímo v listu, lze kritéria pevně zakódovat jako konstanty pole, například takto:

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

Zajímavé články...