Utiliser une fonction de filtre comme critère dans une autre fonction de filtre dans Google Sheets

Dans Google Sheets, il est possible d’utiliser la sortie d’une fonction de filtre comme critère ou condition dans une autre fonction de filtre. Si la sortie de la fonction de filtre utilisée comme critère dans une autre fonction est une seule valeur, vous ne rencontrerez aucun problème.

Cependant, si la formule de filtre retourne plusieurs valeurs, il existe une approche différente pour l’utilisation des critères ! Dans cet article, nous allons voir comment utiliser la sortie d’une fonction de filtre comme critère dans une autre fonction de filtre dans Google Sheets, à l’aide d’un exemple détaillé.

Comment utiliser la sortie de la fonction de filtre comme critère dans une autre fonction de filtre dans Google Sheets

Il est possible de filtrer un ensemble de données (petit ou grand) en utilisant différentes méthodes dans Google Sheets. Pour cela, nous pouvons utiliser deux commandes de menu ainsi que deux fonctions.

Quelles sont-elles ?

  1. Les commandes de menu (options de menu) pour filtrer les ensembles de données dans Google Sheets sont « Trancheur » et « Créer un filtre ». Les deux sont disponibles dans le menu « Données » de Sheets.
  2. Les deux fonctions mentionnées sont « Query » et « Filter ». La fonction « Query » est plus avancée et meilleure que la fonction « Filter ».

Apprendre à utiliser la fonction « Query » est indispensable pour gérer facilement de grands ensembles de données. Cependant, chaque fois que c’est possible, utilisez la fonction « Filter » car elle est réputée être plus économique en termes de ressources dans Sheets.

Revenons maintenant au problème à résoudre ou au scénario. J’ai deux tables. L’une contient une liste de fruits et leur quantité. Appelons cette table, Tableau 1.

La deuxième table, appelée Tableau 2, contient la même liste (mais uniquement des fruits uniques). Au lieu de la quantité, elle contient le prix unitaire.

Je souhaite filtrer le Tableau 1 en fonction du Tableau 2. C’est-à-dire filtrer les fruits du Tableau 1 si leur prix unitaire dans le Tableau 2 est, par exemple, inférieur à une valeur particulière, par exemple, < 5.

Cela signifie que nous devons d’abord filtrer la deuxième table avec le critère, c’est-à-dire le taux unitaire < 5.

Si le filtre ne renvoie qu’un seul nom de fruit, alors il n’y a aucun problème à l’utiliser comme condition dans la deuxième formule de filtre qui filtre le Tableau 1. Sinon, nous devons utiliser JOIN/TEXTJOIN et REGEXMATCH ensemble.

Je vais détailler tout cela ci-dessous. Avant cela, voyons ces deux tableaux.

Tableau 1 et 2 :

(Note : Utilisez ce lien pour visualiser les images : Table 1 et 2)

Filtre dans un filtre dans Google Sheets – Condition unique

Comment filtrer les fruits du Tableau 1 dont le prix unitaire est <2 dans le Tableau 2 ?

Lorsque vous vérifiez le prix unitaire (colonne E) dans le Tableau 2, vous constaterez qu’il y a seulement un fruit dans cette plage de prix, c’est-à-dire « pastèque ».

Formule n°1 :
=filter(A3:B,A3:A="pastèque")

La formule ci-dessus filtrera le Tableau 1 si les lignes dans la plage A3:A correspondent à « pastèque ».

Dans la formule ci-dessus, « pastèque » est le critère/condition. Nous pouvons le remplacer par une autre formule de filtre.

La formule suivante récupérera l’élément « pastèque » du Tableau 2 car c’est le seul élément avec un prix unitaire <2.

Formule n°2 :
=filter(D3:D9,E3:E9<2)

Cela signifie que nous pouvons remplacer le critère « pastèque » dans la formule de filtre n°1 comme suit :

Formule n°3 :
=filter(A3:B,A3:A=filter(D3:D9,E3:E9<2))

Ce qui précède est un exemple de base d’utilisation de la sortie de la fonction de filtre comme critère/condition dans une autre fonction de filtre dans Google Sheets.

Point à noter :

Dans la formule de filtre ci-dessus (Formule n°3), vous avez peut-être remarqué que j’ai utilisé une plage fermée dans le filtre interne. Modifions cela pour obtenir une plage ouverte.

Remplacez D3:D9 et E3:E9 par D3:D et E3:E respectivement.

Formule n°4 :
=filter(A3:B,A3:A=filter(D3:D,E3:E<2))

La formule ci-dessus renverra alors une sortie vide !

La raison en est que la formule de filtre interne renvoie non seulement « pastèque » mais aussi quelques cellules vides en raison de l’utilisation de plages ouvertes (infinies).

Dans ce cas, c’est-à-dire lors de l’utilisation de la sortie d’une fonction de filtre comme critère dans une autre fonction de filtre, affinez la sortie du filtre interne pour exclure les cellules vides. Comment ?

Utilisez le filtre ci-dessous, qui exclut les cellules vides, comme critère.

Formule n°5 :
=filter(D3:D,(E3:E<2)*(E3:E<>""))

La formule finale sera donc ;

Formule n°6 :
=filter(A3:B,A3:A=filter(D3:D,(E3:E<2)*(E3:E<>"")))

(Note : Utilisez ce lien pour visualiser les images : Filtre comme critère dans un autre filtre – Critère unique)

Filtre dans un filtre dans Google Sheets – Condition multiple

Modifiez simplement le critère dans la formule de filtre interne à <5.

Formule n°7 :
=filter(D3:D,(E3:E<5)*(E3:E<>""))

Cela renverra les fruits « pomme », « ananas », « banane » et « pastèque ». Ce sont les conditions pour filtrer le Tableau 1.

Cependant, la formule de filtre ci-dessus comme critère dans un autre filtre comme précédemment renverrait une erreur #N/A !

Formule n°8 :
=filter(A3:B,A3:A=filter(D3:D,(E3:E<5)*(E3:E<>"")))

Ici, pour utiliser le résultat d’une fonction de filtre comme critère dans une autre fonction de filtre, nous pouvons utiliser les fonctions REGEXMATCH et JOIN dans Google Sheets.

C’est semblable à l’utilisation de l’opérateur IN (alternative) dans Query.

Étapes :

Utilisez la fonction JOIN pour combiner les critères multiples (Formule n°7) comme suit.

Formule n°9 :
=join("|",filter(D3:D,(E3:E<5)*(E3:E<>"")))

Alternativement, si vous préférez, vous pouvez également l’utiliser comme suit.
=textjoin("|",true,FILTER(D3:D,E3:E<5))

Dans la première formule (basée sur JOIN), la fonction Filter elle-même exclut les cellules vides de la sortie. Mais dans la deuxième formule (basée sur TEXTJOIN), la fonction Textjoin supprime les cellules vides. Je préfère la deuxième formule.

Remplacez A3:A=filter(D3:D,(E3:E<5)*(E3:E<> » »)) dans la formule n°8 par =REGEXMATCH(A3:A,textjoin(« | »,true,FILTER(D3:D,E3:E<5)))

La formule finale sera donc ;

Formule n°10 :
=filter(A3:B,REGEXMATCH(A3:A,textjoin("|",true,FILTER(D3:D,E3:E<5))))

(Note : Utilisez ce lien pour visualiser les images : Filtre comme critère dans un autre filtre – Critère multiple)

Voilà tout ce qu’il faut savoir sur l’utilisation d’une formule de filtre comme critère dans une autre formule de filtre dans Google Sheets. Merci de votre attention et profitez-en bien !

Ressources

  • Comma-Separated Values as Criteria in Filter Function in Google Sheets.
  • Formula to Filter Uppercase | Lowercase | Proper Case Text in Google Sheets.
  • Filter Data Based on This Week, Last Week, Last 30 Days in Google Sheets.
  • Filter Groups Which Match at Least One Condition in Google Sheets.
  • How to Filter Decimal Numbers in Google Sheets.
  • Filter Out Matching Keywords in Google Sheets – Partial or Full Match.
  • Filter Out Blank Columns in Google Sheets Using Query Formula.
  • Create a Drop-Down to Filter Data From Rows and Columns.
  • Two-way Filter in Google Sheets [Dynamic Vertical and Horizontal Filter].
  • Filter Based on a List in Another Tab in Google Sheets.
  • Filter Rows If All the Columns Have Text Content in Google Sheets.

Pour plus d’articles et de conseils sur Google Sheets, visitez Crawlan.com.

Articles en lien