
Zhrnutie
Ak chcete extrahovať údaje pomocou viacerých podmienok ALEBO, môžete použiť funkciu FILTER spolu s funkciou MATCH. V zobrazenom príklade 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), farby (C3: C16) a mestá (D3: D16) sú pomenované rozsahmi.
Tento vzorec vráti údaje, kde je položka (tričká ALEBO mikina s kapucňou) A farba je (červená ALEBO modrá) A mesto je (denver ALEBO seattle).
Vysvetlenie
V tomto príklade sa kritériá zadávajú v rozsahu F5: H6. Logika vzorca je:
položka je (tričko ALEBO mikina s kapucňou) A farba je (červená ALEBO modrá) A mesto je (denver ALEBO seattle)
Logika filtrovania tohto vzorca (argument zahrnutia) sa použije s funkciami ISNUMBER a MATCH spolu s logickou logikou použitou v operácii poľa.
MATCH je nakonfigurovaný „dozadu“, s vyhľadávacími hodnotami pochádzajúcimi z údajov a kritériami použitými pre vyhľadávacie pole. Napríklad prvá podmienka je, že položky musia byť buď tričko alebo mikina. Ak chcete použiť túto podmienku, ZÁPAS je nastavený takto:
MATCH(items,F5:F6,0) // check for tshirt or hoodie
Pretože v dátach je 12 hodnôt, výsledkom je pole s 12 hodnotami, ako je táto:
(1;#N/A;#N/A;2;#N/A;2;2;#N/A;1;#N/A;2;1)
Toto pole obsahuje buď # chýb N / A (žiadna zhoda) alebo čísla (zhoda). Čísla oznámení zodpovedajú položkám, ktoré sú buď tričko alebo mikina. Ak chcete toto pole previesť na hodnoty TRUE a FALSE, je funkcia MATCH zabalená do funkcie ISNUMBER:
ISNUMBER(MATCH(items,F5:F6,0))
ktorý dáva pole ako je toto:
(TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE)
V tomto poli zodpovedajú TRUE hodnoty tričku alebo mikine.
Celý vzorec obsahuje tri výrazy, ako je ten, ktorý sa používa pre argument include funkcie 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 vyhodnotení MATCH a ISNUMBER máme tri polia obsahujúce hodnoty TRUE a FALSE. Matematická operácia vynásobenia týchto polí spoločne vynúti hodnoty TRUE a FALSE na 1 s a 0 s, takže v tomto okamihu môžeme polia vizualizovať 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ýsledkom podľa pravidiel boolovskej aritmetiky je jediné pole:
(1;0;0;0;0;1;0;0;0;0;0;1)
ktorý sa stane argumentom include vo funkcii FILTER:
=FILTER(B5:D16,(1;0;0;0;0;1;0;0;0;0;0;1))
Konečným výsledkom sú tri riadky údajov zobrazené v F9: H11
S pevne zakódovanými hodnotami
Aj keď vzorec v príklade používa kritériá zadané priamo do hárka, kritériá je možné napevno napísať ako konštanty poľa, napríklad takto:
=FILTER(B5:D16, ISNUMBER(MATCH(items,("Tshirt";"Hoodie"),0))* ISNUMBER(MATCH(colors,("Red";"Blue"),0))* ISNUMBER(MATCH(cities,("Denver";"Seattle"),0)))