Excel vzorec: FILTER so zložitými viacerými kritériami

Obsah

Zhrnutie

Ak chcete filtrovať a extrahovať údaje na základe viacerých zložitých kritérií, môžete použiť funkciu FILTER s reťazcom výrazov, ktoré používajú logickú logiku. V zobrazenom príklade je vzorec v G5:

=FILTER(B5:E16,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4))

Tento vzorec vráti údaje, kde:

účet začína s „x“ A región je „východ“ a mesiac NIE je apríl.

Vysvetlenie

V tomto príklade musíme vytvoriť logiku, ktorá filtruje údaje tak, aby obsahovali:

účet začína s „x“ A región je „východ“ a mesiac NIE je apríl.

Logika filtrovania tohto vzorca (argument zahrnutia) sa vytvorí spojením troch výrazov, ktoré používajú logickú logiku na poliach v dátach. Prvý výraz používa funkciu LEFT na otestovanie, či účet začína na „x“:

LEFT(B5:B16)="x" // account begins with "x"

Výsledkom je pole TRUE FALSE hodnôt, ako je tento:

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

Druhý výraz testuje, či je Región „východ“ s operátorom rovná sa (=):

C5:C16="east" // region is east

Výsledkom je ďalšie pole:

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

Tretí výraz používa funkciu MESIAC s funkciou NOT na testovanie, či mesiac nie je apríl:

NOT(MONTH(D5:D16)=4) // month is not april

ktorý dáva:

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

Upozorňujeme, že funkcia NOT obráti výsledok z výrazu MONTH.

Všetky tri polia sa vynásobia. Matematická operácia vynúti hodnoty TRUE a FALSE na 1 s a 0 s, takže v tomto okamihu môžeme vizualizovať argument include takto:

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

Boolovské násobenie zodpovedá logickej funkcii AND, takže konečným výsledkom je jedno pole, ako je toto:

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

Funkcia FILTER používa toto pole na filtrovanie údajov a vráti štyri riadky, ktoré zodpovedajú hodnotám 1 v poli.

Kritériá rozšírenia

Výrazy použité na vytvorenie argumentu include vo filtri je možné podľa potreby rozšíriť tak, aby zvládli aj zložitejšie filtre. Napríklad na ďalšie filtrovanie údajov tak, aby zahŕňali iba riadky, ktorých počet> 10 000, môžete použiť nasledujúci vzorec:

=FILTER(B5:E16,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4)*(E5:E16>10000))

Zaujímavé články...