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 png 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
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

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 suivante recherchera tous les utilisateurs dont le nom contient un "u" comme 2e caractère :

=QUERY(BD!A1:G15;"SELECT * WHERE C LIKE '_u%'")
google sheets query where like underscore

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

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 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 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 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 like