Excel-formel: FILTER med komplekse flere kriterier -

Innholdsfortegnelse

Sammendrag

For å filtrere og trekke ut data basert på flere komplekse kriterier, kan du bruke FILTER-funksjonen med en kjede av uttrykk som bruker boolsk logikk. I eksemplet vist er formelen i G5:

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

Denne formelen returnerer data der:

kontoen begynner med "x" OG regionen er "øst", og måneden er IKKE april.

Forklaring

I dette eksemplet må vi konstruere logikk som filtrerer data for å inkludere:

kontoen begynner med "x" OG regionen er "øst", og måneden er IKKE april.

Filtreringslogikken til denne formelen (inkluderingsargumentet) opprettes ved å koble sammen tre uttrykk som bruker boolsk logikk på matriser i dataene. Det første uttrykket bruker VENSTRE-funksjonen for å teste om Konto begynner med "x":

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

Resultatet er en rekke SANNE FALSE verdier som dette:

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

Det andre uttrykket tester om Region er "øst" med operatoren lik (=):

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

Resultatet er en annen matrise:

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

Det tredje uttrykket bruker MÅNED-funksjonen med IKKE-funksjonen for å teste om måneden ikke er april:

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

som gir:

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

Merk at NOT-funksjonen reverserer resultatet fra MONTH-uttrykket.

Alle tre matriser multipliseres sammen. Matematikkoperasjonen tvinger de SANNE og FALSE verdiene til 1s og 0s, så på dette punktet kan vi visualisere inkluderingsargumentet slik:

(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 multiplikasjon tilsvarer den logiske funksjonen OG, så det endelige resultatet er en enkelt matrise som dette:

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

FILTER-funksjonen bruker denne matrisen til å filtrere dataene, og returnerer de fire radene som tilsvarer 1-ene i matrisen.

Utvide kriterier

Uttrykkene som brukes til å lage inkludere-argumentet i filteret kan utvides etter behov for å håndtere enda mer komplekse filtre. For eksempel, for å ytterligere filtrere data slik at de bare inkluderer rader der beløpet er> 10000, kan du bruke en formel som denne:

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

Interessante artikler...