Google Sheets QUERY : recherche partielle

Jusque-là, la condition de WHERE utilisait l'opérateur = pour tester si une valeur était égale à une autre.

Comme par exemple ici avec la requête suivante qui retourne uniquement un résultat lorsque le prénom (C) est égal à "Paul" :

=QUERY(BD!A1:G15;"SELECT * WHERE C = 'Paul'")

google-sheets-fonction-query-where - where-like


Recherche partielle avec LIKE

Pour effectuer une recherche partielle, utilisez l'opérateur LIKE et ajoutez un ou plusieurs % à la valeur recherchée en fonction du type de recherche.

Par exemple, pour rechercher tous les utilisateurs dont le nom d'utilisateur contient un "e", entrez la requête suivante (en ajoutant un % de chaque côté du "e" pour indiquer qu'il peut y avoir d'autres caractères à cet endroit) :

=QUERY(BD!A1:G15;"SELECT * WHERE C LIKE '%e%'")

google-sheets-fonction-query-where-like - where-like
Vous pouvez remarquer que l'utilisateur Eric ne figure pas parmi les résultats de la fonction car celle-ci est sensible à la casse (pour ignorer les majuscules, il est possible d'utiliser une fonction, nous y reviendrons plus tard dans ce cours).

Pour rechercher maintenant tous les utilisateurs dont le nom d'utilisateur se termine par "es", entrez la requête suivante (en ajoutant un % uniquement devant "es") :

=QUERY(BD!A1:G15;"SELECT * WHERE C LIKE '%es'")

google-sheets-query-where-like-termine-par - where-like

Le caractère % remplace donc zéro, un ou plusieurs caractères quelconques.

Il est également possible d'utiliser le caractère _ pour remplacer un caractère quelconque.

Par exemple, la requête =QUERY(BD!A1:G15;"SELECT * WHERE C LIKE '_u%'") recherchera tous les utilisateurs dont le nom contient un "u" comme 2e caractère :

google-sheets-query-where-like-underscore - where-like

NOT

Dans un précédent exemple, la fonction retournait tous les utilisateurs dont le nom d'utilisateur se terminait par "es".

Pour obtenir le résultat inverse (tous les utilisateurs dont le nom d'utilisateur ne se termine pas par "es"), ajoutez NOT devant la condition :

=QUERY(BD!A1:G15;"SELECT * WHERE NOT C LIKE '%es'")

google-sheets-query-where-like-not - where-like

CONTAINS

D'autres opérateurs permettent de faire des recherches plus ou moins similaires. C'est le cas de l'opérateur CONTAINS qui permet de rechercher si le texte contient une valeur (opérateur similaire à LIKE avec deux %).

Par exemple, recherche des utilisateurs dont le nom contient "an" :

=QUERY(BD!A1:G15;"SELECT * WHERE C CONTAINS 'an'")

google-sheets-query-where-contains - where-like

STARTS WITH

L'opérateur STARTS WITH permet de rechercher si le texte commence par une valeur (similaire à LIKE avec un % à la fin).

Par exemple, recherche des utilisateurs dont le nombre de messages commence par un "1" :

=QUERY(BD!A1:G15;"SELECT * WHERE E STARTS WITH 1")

google-sheets-query-where-starts-with - where-like

ENDS WITH

L'opérateur ENDS WITH permet de rechercher si le texte se termine par une valeur (similaire à LIKE avec un % au début).

Par exemple, recherche des utilisateurs dont l'adresse email se termine par "e@exemple.com" :

=QUERY(BD!A1:G15;"SELECT * WHERE G ENDS WITH 'e@exemple.com'")

google-sheets-query-where-ends-with - where-like

MATCHES

L'opérateur MATCHES permet de tester la valeur à l'aide d'une expression régulière.

Par exemple, recherche des utilisateurs dont l'adresse email contient au moins un "l" placé avant le "@" :

=QUERY(BD!A1:G15;"SELECT * WHERE G MATCHES '.*l.*@.*'")

google-sheets-query-where-matches-regex - where-like
Télécharger ce cours au format PDF