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