Plusieurs CONTIENT dans la clause WHERE de Query dans Google Sheets

Video google sheet query where contains

Salut les ami(e)s ! Je sais que vous êtes passionné(e)s par la fonction Query. J’ai une astuce géniale pour vous ! Je vais résoudre votre problème d’utilisation de plusieurs CONTIENT dans la clause WHERE de Query dans Google Sheets.

En plus de l’agrégation, la fonction Query de Google Sheets a une capacité incroyable : la recherche de chaînes de caractères. Pour cela, il existe des opérateurs de comparaison simples et cinq opérateurs de comparaison de chaînes de caractères complexes : CONTIENT, CORRESPOND, RESSEMBLE À, COMMENCE PAR et SE TERMINE PAR.

Certains d’entre vous connaissent déjà l’utilisation de CONTIENT ainsi que l’utilisation de la négation CONTIENT dans Query. Voici un exemple :

Exemple de formule avec CONTIENT dans la clause WHERE dans la cellule D1 : Extrayez tous les « Codes de produit » contenant la chaîne « AB ».
=QUERY(A1:A,"Sélectionnez * où A CONTIENT 'AB'",1)

Exemple de formule avec non CONTIENT dans la cellule E1 : Extrayez tous les « Codes de produit » qui ne contiennent pas la chaîne « AB ».
=QUERY(A1:A,"Sélectionnez * où non A CONTIENT 'AB'",1)

Query Contains and Not Contains String Matching

L’objectif de cet opérateur de recherche de chaînes de caractères est de faire une recherche partielle selon un critère. Grâce à l’opérateur logique NOT de Query, vous pouvez inverser la correspondance. J’ai démontré cela dans le deuxième exemple de formule ci-dessus.

L’objectif de l’utilisation de plusieurs CONTIENT dans la clause WHERE de Query est d’effectuer plusieurs correspondances partielles, n’est-ce pas ? Permettez-moi de traiter cette question, qui est le sujet principal de cet article.

Plusieurs conditions CONTIENT dans la clause WHERE de la fonction Query

Et que diriez-vous de l’utilisation de plusieurs CONTIENT dans la clause WHERE de la fonction Query de Google Sheets ? Pouvez-vous écrire une correspondance partielle avec plusieurs critères ?

La réponse est OUI ! Vous pouvez utiliser plusieurs critères avec CONTIENT et non CONTIENT dans la clause WHERE de la fonction Query de Google Sheets. Alors, comment écrire plusieurs CONTIENT dans Query ?

Et bien, voici la réponse ! Si vous avez quelques mots-clés de correspondance partielle (ou non), utilisez plusieurs CONTIENT dans Query. Si le nombre de mots-clés de correspondance partielle (ou non) est élevé, il existe une meilleure option. Voyons d’abord l’utilisation de plusieurs CONTIENT.

=QUERY(A1:A,"Sélectionnez * où A CONTIENT 'AB' ou A CONTIENT 'DJ'",1)

Vous pouvez remplacer CONTIENT dans la clause WHERE de Query par CORRESPOND dans la clause WHERE de Sheets.

Cela signifie que lorsque vous souhaitez utiliser plusieurs critères avec CONTIENT dans la clause WHERE, vous pouvez utiliser l’opérateur Correspond.

Comment remplacer CONTIENT par CORRESPOND dans Query de Google Sheets

J’ai donné deux exemples de formules à critère unique ci-dessus. Je vais les réécrire en utilisant l’opérateur CORRESPOND dans la clause WHERE de Query.

CORRESPOND dans la clause WHERE (exemple de formule dans la cellule D1) :
=QUERY(A1:A,"Sélectionnez * où A CORRESPOND '.*AB.*'",1)

Non correspondant (exemple de formule dans la cellule E1) :
=QUERY(A1:A,"Sélectionnez * où non A CORRESPOND '.*AB.*'",1)

Lorsque vous remplacez CONTIENT par CORRESPOND, incluez .* autour du critère. Jetez un coup d’œil à mes deux formules Query ci-dessus pour voir comment les utiliser.

Comme je l’ai mentionné précédemment, il est possible d’utiliser plusieurs CONTIENT dans la fonction Query en utilisant la correspondance de chaînes de caractères.

Dans les exemples de formules ci-dessus, j’ai inclus le critère/condition dans la formule. Si le critère se trouve dans une cellule, comment y faire référence dans Query ? Consultez mes astuces utiles dans mon précédent guide sur l’utilisation des références de cellules dans Query de Google Sheets.

Plusieurs CONTIENT en utilisant MATCHES dans la clause WHERE de Query de Google Sheets

Dans les exemples précédents, j’ai extrait les « Codes de produit » qui contiennent/ne contiennent pas la sous-chaîne « AB ». Maintenant, je vais écrire plusieurs correspondances/mésappariements de sous-chaînes dans la formule Query.

Voici les formules suivantes :

D1 : =QUERY(A1:A,"Sélectionnez * où A CORRESPOND '.*AB.*|.*DJ.*'",1)
E1 : =QUERY(A1:A,"Sélectionnez * où not A CORRESPOND '.*AB.*|.*DJ.*'",1)

Example to Multiple CONTAINS in WHERE Clause in Query

Lorsque vous remplacez un seul critère CONTIENT par plusieurs critères CORRESPOND, ajoutez un séparateur | entre les chaînes. Cela rend les choses plus faciles pour nous d’inclure plusieurs critères de correspondance partielle (ou non) dans une seule Query.

La correspondance basée sur les critères est ma réponse à la question de savoir comment utiliser plusieurs CONTIENT dans la clause WHERE de Query de Google Sheets.

Conditions de correspondance en tant que plage dans la fonction Query de Google Sheets

Supposons que les conditions (dans la dernière formule Query ci-dessus) soient saisies en tant que plage. Comment coder correctement la formule Query ?

Critères/Conditions dans B2:B3

AB
DJ

Nous devons formater ces critères sous la forme ‘.AB.|.DJ.‘ pour les utiliser dans la correspondance d’expressions régulières de Query de Google Sheets. Comment ?

Utilisons la fonction TextJoin.

=ArrayFormula("'"&textjoin(".*|",1,".*"&B2:B3)&".*'")

Utilisez cette formule dans la correspondance de Query.

=Query(A1:A,"Sélectionnez A where not A CORRESPOND "&ArrayFormula("'"&textjoin(".*|",1,".*"&B2:B3)&".*'"))

Avant de conclure, un conseil bonus. Savez-vous comment utiliser CONTIENT et ne CONTIENT PAS dans une seule formule Query ?

Contient et ne contient pas dans une seule formule Query

Pour une seule condition de Contient et ne contient pas, vous pouvez utiliser CONTIENT dans la clause WHERE. Pour une seule condition ainsi que pour plusieurs conditions (correspondances/mésappariements), utilisez CORRESPOND.

Contient et ne contient pas pour une seule condition (vous pouvez remplacer CONTIENT dans cette formule par CORRESPOND dans la clause WHERE) :
=QUERY(A1:A,"Sélectionnez * où A CONTIENT 'ABC' et non A CONTIENT '101'",1)

Correspondances multiples et ne correspondent pas (Plusieurs CONTIENT et ne CONTIENT pas) :
=QUERY(A1:A,"Sélectionnez * où A CORRESPOND '.*AB.*|.*DJ.*' et non A CORRESPOND '.*101.*|.*102.*'",1)

Appliquez ces formules dans vos Google Sheets et vérifiez les résultats. Voilà, c’est tout. Amusez-vous bien !

Si vous souhaitez en savoir plus sur les astuces Google Sheets et d’autres outils de marketing numérique, faites un tour sur Crawlan.com.

Articles en lien