Formule Excel: FILTRE avec plusieurs critères OR -

Table des matières

Sommaire

Pour extraire des données avec plusieurs conditions OR, vous pouvez utiliser la fonction FILTER avec la fonction MATCH. Dans l'exemple illustré, la formule en F9 est:

=FILTER(B5:D16, ISNUMBER(MATCH(items,F5:F6,0))* ISNUMBER(MATCH(colors,G5:G6,0))* ISNUMBER(MATCH(cities,H5:H6,0)))

où les éléments (B3: B16), les couleurs (C3: C16) et les villes (D3: D16) sont des plages nommées.

Cette formule renvoie des données où l'élément est (t-shirts OU sweat à capuche) ET la couleur est (rouge OU bleu) ET la ville est (denver OU Seattle).

Explication

Dans cet exemple, les critères sont entrés dans la plage F5: H6. La logique de la formule est:

l'article est (tshirt OU sweat à capuche) ET la couleur est (rouge OU bleu) ET la ville est (denver OU seattle)

La logique de filtrage de cette formule (l'argument d'inclusion) est appliquée avec les fonctions ISNUMBER et MATCH, ainsi que la logique booléenne appliquée dans une opération de tableau.

MATCH est configuré "à l'envers", avec des valeurs de recherche provenant des données et des critères utilisés pour le tableau de recherche. Par exemple, la première condition est que les articles doivent être soit un Tshirt soit un Sweat à capuche. Pour appliquer cette condition, MATCH est configuré comme ceci:

MATCH(items,F5:F6,0) // check for tshirt or hoodie

Comme il y a 12 valeurs dans les données, nous le résultat est un tableau avec 12 valeurs comme ceci:

(1;#N/A;#N/A;2;#N/A;2;2;#N/A;1;#N/A;2;1)

Ce tableau contient des erreurs # N / A (pas de correspondance) ou des nombres (correspondance). Les numéros d'avis correspondent aux articles qui sont soit des Tshirt, soit des Hoodies. Pour convertir ce tableau en valeurs TRUE et FALSE, la fonction MATCH est encapsulée dans la fonction ISNUMBER:

ISNUMBER(MATCH(items,F5:F6,0))

ce qui donne un tableau comme celui-ci:

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

Dans ce tableau, les valeurs TRUE correspondent à tshirt ou hoodie.

La formule complète contient trois expressions comme celle ci-dessus utilisée pour l'argument include de la fonction FILTER:

ISNUMBER(MATCH(items,F5:F6,0))* // tshirt or hoodie ISNUMBER(MATCH(colors,G5:G6,0))* // red or blue ISNUMBER(MATCH(cities,H5:H6,0))) // denver or seattle

Une fois que MATCH et ISNUMBER ont été évalués, nous avons trois tableaux contenant des valeurs TRUE et FALSE. L'opération mathématique de multiplication de ces tableaux ensemble contraint les valeurs VRAI et FAUX à 1 et 0, afin que nous puissions visualiser les tableaux à ce stade comme ceci:

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

Le résultat, suivant les règles de l'arithmétique booléenne, est un seul tableau:

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

qui devient l'argument include dans la fonction FILTER:

=FILTER(B5:D16,(1;0;0;0;0;1;0;0;0;0;0;1))

Le résultat final est les trois lignes de données affichées dans F9: H11

Avec des valeurs codées en dur

Bien que la formule de l'exemple utilise des critères entrés directement dans la feuille de calcul, les critères peuvent être codés en dur comme des constantes de tableau à la place comme ceci:

=FILTER(B5:D16, ISNUMBER(MATCH(items,("Tshirt";"Hoodie"),0))* ISNUMBER(MATCH(colors,("Red";"Blue"),0))* ISNUMBER(MATCH(cities,("Denver";"Seattle"),0)))

Articles intéressants...