Excel-formel: FILTER med komplekse flere kriterier -

Indholdsfortegnelse

Resumé

For at filtrere og udtrække data baseret på flere komplekse kriterier kan du bruge FILTER-funktionen med en kæde af udtryk, der bruger boolsk logik. I det viste eksempel er formlen i G5:

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

Denne formel returnerer data, hvor:

konto begynder med "x" OG region er "øst", og måned er IKKE april.

Forklaring

I dette eksempel skal vi konstruere logik, der filtrerer data, så de inkluderer:

konto begynder med "x" OG region er "øst", og måned er IKKE april.

Filtreringslogikken med denne formel (inkluderingsargumentet) oprettes ved at kæde sammen tre udtryk, der bruger boolsk logik på arrays i dataene. Det første udtryk bruger VENSTRE-funktionen til at teste, om Konto begynder med "x":

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

Resultatet er en matrix af SANDE FALSKE værdier som denne:

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

Det andet udtryk tester, om Region er "øst" med operatoren lig med (=):

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

Resultatet er et andet array:

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

Det tredje udtryk bruger MÅNED-funktionen med IKKE-funktionen til at teste, om måneden ikke er april:

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

som giver:

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

Bemærk, at funktionen IKKE vender resultatet fra MÅNED-udtrykket.

Alle tre arrays ganges sammen. Matematikoperationen tvinger de sande og falske værdier til 1s og 0s, så på dette tidspunkt kan vi visualisere inkluderingsargumentet som dette:

(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 svarer til den logiske funktion OG, så det endelige resultat er et enkelt array som dette:

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

FILTER-funktionen bruger dette array til at filtrere dataene og returnerer de fire rækker, der svarer til 1'erne i arrayet.

Udvidelse af kriterier

Udtrykkene, der bruges til at oprette inkluderingsargumentet i filteret, kan udvides efter behov for at håndtere endnu mere komplekse filtre. For eksempel, for at yderligere filtrere data til kun at omfatte rækker, hvor beløb> 10000, kan du bruge en formel som denne:

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

Interessante artikler...