Excel vzorec: FILTR se složitými několika kritérii -

Obsah

souhrn

Chcete-li filtrovat a extrahovat data na základě více komplexních kritérií, můžete použít funkci FILTER s řetězcem výrazů, které používají logickou logiku. V zobrazeném příkladu je vzorec v G5:

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

Tento vzorec vrací data, kde:

účet začíná „x“ AND region je „východ“ a měsíc NENÍ duben.

Vysvětlení

V tomto příkladu musíme vytvořit logiku, která filtruje data tak, aby zahrnovala:

účet začíná „x“ AND region je „východ“ a měsíc NENÍ duben.

Logika filtrování tohoto vzorce (argument include) se vytvoří zřetězením tří výrazů, které používají logickou logiku na polích v datech. První výraz používá funkci LEFT k otestování, zda Účet začíná na „x“:

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

Výsledkem je pole TRUE FALSE hodnot, jako je tato:

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

Druhý výraz testuje, zda je Region „východ“ s operátorem rovná se (=):

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

Výsledkem je další pole:

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

Třetí výraz používá k testování, zda měsíc není duben, funkci MĚSÍC s funkcí NOT:

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

který dává:

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

Všimněte si, že funkce NOT obrátí výsledek z výrazu MONTH.

Všechna tři pole jsou vynásobena společně. Matematická operace vynucuje hodnoty PRAVDA a NEPRAVDA na 1 s a 0 s, takže v tomto okamžiku můžeme vizualizovat argument zahrnout 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)

Booleovské násobení odpovídá logické funkci AND, takže konečným výsledkem je jedno pole, jako je toto:

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

Funkce FILTER používá toto pole k filtrování dat a vrací čtyři řádky, které odpovídají 1 s v poli.

Kritéria rozšíření

Výrazy použité k vytvoření argumentu zahrnout do filtru lze podle potřeby rozšířit, aby zvládly i složitější filtry. Například k dalšímu filtrování dat tak, aby zahrnovaly pouze řádky, kde částka> 10 000, můžete použít vzorec jako tento:

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

Zajímavé články...