Formule Excel: FILTRE avec plusieurs critères complexes -

Table des matières

Sommaire

Pour filtrer et extraire des données en fonction de plusieurs critères complexes, vous pouvez utiliser la fonction FILTER avec une chaîne d'expressions utilisant la logique booléenne. Dans l'exemple illustré, la formule en G5 est:

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

Cette formule renvoie des données où:

le compte commence par «x» ET la région est «est», et le mois n'est PAS avril.

Explication

Dans cet exemple, nous devons construire une logique qui filtre les données pour inclure:

le compte commence par «x» ET la région est «est», et le mois n'est PAS avril.

La logique de filtrage de cette formule (l'argument include) est créée en enchaînant trois expressions qui utilisent la logique booléenne sur des tableaux dans les données. La première expression utilise la fonction GAUCHE pour tester si le compte commence par "x":

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

Le résultat est un tableau de valeurs TRUE FALSE comme ceci:

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

La deuxième expression teste si Region est "east" avec l'opérateur égal à (=):

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

Le résultat est un autre tableau:

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

La troisième expression utilise la fonction MONTH avec la fonction NOT pour tester si le mois n'est pas avril:

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

ce qui donne:

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

Notez que la fonction NOT inverse le résultat de l'expression MONTH.

Les trois tableaux sont multipliés ensemble. L'opération mathématique contraint les valeurs TRUE et FALSE à 1 et 0, donc à ce stade, nous pouvons visualiser l'argument d'inclusion comme ceci:

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

La multiplication booléenne correspond à la fonction logique ET, donc le résultat final est un tableau unique comme celui-ci:

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

La fonction FILTER utilise ce tableau pour filtrer les données et renvoie les quatre lignes qui correspondent aux 1 du tableau.

Extension des critères

Les expressions utilisées pour créer l'argument d'inclusion dans le filtre peuvent être étendues si nécessaire pour gérer des filtres encore plus complexes. Par exemple, pour filtrer davantage les données afin d'inclure uniquement les lignes dont le montant est supérieur à 10000, vous pouvez utiliser une formule comme celle-ci:

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

Articles intéressants...