Lorsque vous avez une base de données ou de saisies et vous que souhaitez obtenir plusieurs résultats à une recherche, il fallait auparavant manipuler la base avant d’utiliser la fonction RECHERCHEV combinée à d’autres fonctions.
Toutefois, depuis ces dernières années, Google a implémenté la fonction FILTER, inspirée de la fonction FILTRE de Microsoft.
Durant cet article, nous allons voir comment l’utiliser à travers d’exemples.
Syntaxe
La fonction FILTER se présente de la manière suivante :
=FILTER(plage; condition1; [condition2; …])
avec les arguments:
- plage: plage de données qui sera affichée dans nos résultats
- conditions : il s’agit de la (des) règle(s) de filtrage
Données filtrées avec un filtre
Découvrons cette fonction à l’aide d’un exemple.
J’ai listé les livraisons effectuées par mon entreprise. J’ai créé un formulaire pour filtrer mes données en fonction du client livré.
étape 1 : récupérer les données filtrées
- Je veux afficher l’ensemble du tableau soit A2:F14.
- Ma règle de filtrage est que les résultats doivent être uniquement pour le client sélectionné dans ma liste déroulante : C2:C14=K1
On obtient la formule :
=FILTER(A2:F14;C2:C14=K1)
étape 2 : ajouter SIERREUR en cas d'absence de résultats
Si aucun client est sélectionné dans ma liste déroulante, cela affiche une erreur #N/A. Pour éviter cela, je vais ajouter la fonction SIERREUR.
=SIERREUR(FILTER(A2:F14;C2:C14=K1);"aucun résultat")

Choisissons un client. Et voilà, des résultats sont trouvés. Il suffit de choisir un autre client pour que mon tableau s’adapte en fonction des résultats trouvés.

Je ne veux que le n°, la date et le montant des livraisons. Les 2 premières infos sont dans des colonnes adjacentes mais le montant est dans une colonne éloignée. Il me faudra donc deux formules en J4 :
=SIERREUR(FILTER(A2:B14;C2:C14=K1);"aucun résultat")
et L4 :
=SIERREUR(FILTER(E2:E14;C2:C14=K1);"aucun résultat")

Données filtrées avec plusieurs règles
La fonction FILTER permet d’aller encore plus loin en déterminant plusieurs règles de filtrage.
Il suffit d’écrire chaque règle dans un argument de la fonction. Il est aussi possible de faire comme Excel en mettant dans un seul argument entre des parenthèses chaque condition et les lier avec :
- un astérisque * équivaut au ET pour que toutes les conditions soient respectées
- un plus + équivaut au OU pour qu’une condition soit bonne
(règle1)*(régle2)*(règle3).... ou (règle1)+(règle2)+(règle3)
Continuons avec notre exemple. Je décide de mettre des filtres sur :
- le client
- le produit
exemple avec * (ET)
Je veux les résultats qui respectent les 2 conditions suivantes :
- le client sélectionné en K1
- le produit sélectionné en K2
Cela donne :
=SIERREUR(FILTER(A2:F14;C2:C14=K1;D2:D14=K2);"aucun")
ou
=SIERREUR(FILTER(A2:F14;(C2:C14=K1)*(D2:D14=K2));"aucun")

exemple avec + (OU)
Cette fois-ci, je veux les résultats pour le client en K1 ou le produit en K2.
Cela se traduit par :
=SIERREUR(FILTER(A2:F14;(C2:C14=K1)+(D2:D14=K2));"aucun")

Comme vous pouvez le remarquer sur la 1ère ligne de résultat, les 2 conditions sont respectées. En fait, l’utilisation du OU est inclusif, c’est à dire que Sheets affichera les résultats si au moins une condition est respectée (donc ça marche si toutes les conditions sont respectées).
Lister les résultats sur une période
Nous avons choisi des valeurs exactes. Testons maintenant sur des valeurs inférieures et supérieures à une valeur.
Le meilleur exemple pour cela est une période entre deux dates (supérieures à date de début et inférieures à date de fin).
On obtient la formule :
=SIERREUR(FILTER(A2:F14;(B2:B14>=K1)*(B2:B14<=K2));"aucun")

