Excel formula: FILTER s kompleksnimi več merili -

Kazalo

Povzetek

Če želite filtrirati in izvleči podatke na podlagi več kompleksnih meril, lahko uporabite funkcijo FILTER z verigo izrazov, ki uporabljajo logično logiko. V prikazanem primeru je formula v G5:

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

Ta formula vrne podatke, kjer:

račun se začne z "x" IN regija je "vzhod", mesec pa NI april.

Pojasnilo

V tem primeru moramo zgraditi logiko, ki filtrira podatke tako, da vključuje:

račun se začne z "x" IN regija je "vzhod", mesec pa NI april.

Logika filtriranja te formule (argument »vključi«) je ustvarjena z veriženjem treh izrazov, ki uporabljajo logično logiko na nizih v podatkih. Prvi izraz uporablja funkcijo LEVO, da preizkusi, ali se račun začne z "x":

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

Rezultat je niz TRUE FALSE vrednosti, kot je ta:

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

Drugi izraz testira, če je Regija "vzhod" z operatorjem (=):

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

Rezultat je še ena matrika:

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

Tretji izraz uporablja funkcijo MONTH s funkcijo NOT, da preizkusi, ali mesec ni april:

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

ki daje:

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

Upoštevajte, da funkcija NOT spremeni rezultat iz izraza MONTH.

Vsi trije nizi se pomnožijo skupaj. Matematična operacija prisili vrednosti TRUE in FALSE na 1s in 0s, zato lahko na tej točki vizualiziramo argument vključitve, kot je ta:

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

Logično množenje ustreza logični funkciji AND, zato je končni rezultat ena sama matrika:

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

Funkcija FILTER uporablja to matriko za filtriranje podatkov in vrne štiri vrstice, ki ustrezajo enotam v matriki.

Merila za razširitev

Izraze, ki se uporabljajo za ustvarjanje argumenta za vključitev v filter, lahko po potrebi razširite, da lahko obdelujete še bolj zapletene filtre. Na primer, če želite podatke še naprej filtrirati, da bodo vključevali samo vrstice z vrednostjo> 10000, lahko uporabite formulo, kot je ta:

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

Zanimive Članki...