Excel-formule: FILTER met complexe meerdere criteria -

Inhoudsopgave

Samenvatting

Als u gegevens wilt filteren en extraheren op basis van meerdere complexe criteria, kunt u de functie FILTER gebruiken met een reeks expressies die booleaanse logica gebruiken. In het getoonde voorbeeld is de formule in G5:

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

Deze formule retourneert gegevens waarbij:

account begint met "x" EN regio is "oost", en de maand is NIET april.

Uitleg

In dit voorbeeld moeten we logica construeren die gegevens filtert om het volgende op te nemen:

account begint met "x" EN regio is "oost", en de maand is NIET april.

De filterlogica van deze formule (het include-argument) wordt gemaakt door drie expressies aan elkaar te koppelen die booleaanse logica gebruiken op arrays in de gegevens. De eerste uitdrukking gebruikt de LEFT-functie om te testen of Account begint met "x":

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

Het resultaat is een reeks TRUE FALSE-waarden zoals deze:

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

De tweede uitdrukking test of Regio "oost" is met de operator gelijk aan (=):

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

Het resultaat is een andere array:

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

De derde uitdrukking gebruikt de functie MAAND met de functie NOT om te testen of de maand niet april is:

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

wat oplevert:

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

Merk op dat de NOT-functie het resultaat van de MONTH-expressie omkeert.

Alle drie de arrays worden met elkaar vermenigvuldigd. De wiskundige bewerking dwingt de waarden TRUE en FALSE naar 1s en 0s, dus op dit punt kunnen we het include-argument als volgt visualiseren:

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

Booleaanse vermenigvuldiging komt overeen met de logische functie AND, dus het eindresultaat is een enkele array zoals deze:

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

De functie FILTER gebruikt deze array om de gegevens te filteren en retourneert de vier rijen die overeenkomen met de enen in de array.

Uitbreiding van criteria

De uitdrukkingen die worden gebruikt om het include-argument in het filter te maken, kunnen indien nodig worden uitgebreid om nog complexere filters te verwerken. Als u bijvoorbeeld gegevens verder wilt filteren om alleen rijen op te nemen met het aantal> 10000, kunt u een formule als volgt gebruiken:

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

Interessante artikelen...