Excel-formel: FILTER med komplexa flera kriterier -

Innehållsförteckning

Sammanfattning

För att filtrera och extrahera data baserat på flera komplexa kriterier kan du använda FILTER-funktionen med en kedja av uttryck som använder boolesk logik. I exemplet som visas är formeln i G5:

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

Denna formel returnerar data där:

kontot börjar med "x" OCH regionen är "öst", och månaden är INTE april.

Förklaring

I det här exemplet måste vi konstruera logik som filtrerar data för att inkludera:

kontot börjar med "x" OCH regionen är "öst", och månaden är INTE april.

Filtreringslogiken för denna formel (inkluderingsargumentet) skapas genom att kedja ihop tre uttryck som använder boolesk logik på matriser i datan. Det första uttrycket använder VÄNSTER-funktionen för att testa om kontot börjar med "x":

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

Resultatet är en array med SANTA FALSKA värden så här:

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

Det andra uttrycket testar om Region är "öst" med lika med (=) operator:

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

Resultatet är en annan array:

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

Det tredje uttrycket använder MÅNAD-funktionen med INTE-funktionen för att testa om månaden inte är april:

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

Vilket ger:

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

Observera att funktionen INTE reverserar resultatet från MONTH-uttrycket.

Alla tre matriserna multipliceras tillsammans. Matematikoperationen tvingar SANT och FALSKT till 1s och 0s, så vid den här tiden kan vi visualisera inkluderingsargumentet så här:

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

Boolsk multiplikation motsvarar den logiska funktionen OCH, så det slutliga resultatet är en enda matris så här:

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

FILTER-funktionen använder den här matrisen för att filtrera data och returnerar de fyra raderna som motsvarar 1s i matrisen.

Förlängningskriterier

Uttrycken som används för att skapa inkludera argumentet i filtret kan utvidgas efter behov för att hantera ännu mer komplexa filter. Till exempel, för att ytterligare filtrera data så att de bara inkluderar rader där beloppet> 10000 kan du använda en sådan formel:

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

Intressanta artiklar...