L’alternative à l’opérateur SQL IN dans Google Sheets Query (Également Not IN)

Je n’ai pas pu trouver l’opérateur logique SQL IN dans Google Sheets Query. Est-il disponible ou non ? Si ce n’est pas le cas, existe-t-il une alternative ?

Dans Google Sheets Query, les opérateurs logiques IN et NOT IN ne sont pas disponibles. Mais il existe une alternative.

Si vous connaissez le but de l’opérateur logique SQL IN, vous pouvez chercher une alternative. Permettez-moi donc de vous expliquer le but de l’opérateur logique SQL IN.

But :

Pour faire correspondre plusieurs valeurs dans une liste, nous pouvons utiliser l’opérateur IN dans la clause WHERE de SQL (Je ne suis pas familier avec SQL, mais j’ai l’habitude d’utiliser Query dans Sheets).

En fait, l’opérateur logique SQL IN équivaut à utiliser plusieurs conditions OR. Pour plusieurs OR, nous pouvons utiliser l’opérateur Matches dans Query.

Cet article décrit comment utiliser l’opérateur MATCHES en tant qu’alternative aux opérateurs SQL IN et NOT IN dans Google Sheets Query.

Alternative à l’opérateur SQL IN dans Google Sheets Query

J’ai une table de produits (A1:C) avec la première colonne contenant les noms des produits, les deuxième et troisième colonnes contenant le prix unitaire et la disponibilité des stocks respectivement.

Je veux trouver les produits dont les noms correspondent aux noms d’une liste fournie dans une autre colonne, E.

Nous pouvons appeler cette colonne E la colonne des critères.

SQL IN Operator dans Google Sheets Query - Alternative

Si vous ne voulez pas spécifier la colonne E, il est assez facile de coder la Query. Je veux dire que vous pouvez simplement lister les noms à trouver dans Query.

Utilisez l’opérateur Matches dans la clause WHERE de Query et entrez les noms des produits à trouver. Les noms des produits doivent être séparés par |.

La formule pour la cellule G1 :

=query(A1:C,"Select * where A matches 'Apple|Sweet Melon|Avocado'")

Mais pour trouver les produits en utilisant les noms de produits dans une autre colonne (ici la colonne E), utilisez la formule suivante :

=query(A1:C,"Select * where A matches '"&TEXTJOIN("|",true,E1:E)&"'")

Textjoin avec Matches – Explication

La fonction TEXTJOIN va combiner les critères et placer le symbole de pipe entre eux. Vous avez des doutes ?

Saisissez cette formule TEXTJOIN dans une cellule et voyez ce qu’elle retourne :

=TEXTJOIN("|",true,E1:E)

D’après l’exemple ci-dessus, elle retournera certainement la chaîne Apple|Sweet Melon|Avocado.

Le TEXTJOIN ci-dessus doit être placé entre ‘ »& et ce & »‘. C’est une pratique courante dans l’utilisation des critères texte en tant que référence de cellule dans Query, comme ‘ »&E1″‘. Voir les exemples de formules ci-dessous :

=query(A1:C,"Select * where A matches '"&E1&"'")

ce qui est équivalent à

=query(A1:C,"Select * where A matches 'Apple'")

Pour plus de détails sur l’utilisation des critères appropriés dans Query, veuillez lire les exemples d’utilisation des littéraux dans Query dans Google Sheets.

De cette façon, vous pouvez utiliser Matches comme alternative à l’opérateur logique SQL IN dans Google Sheets Query.

Alternative SQL NOT IN

Lorsque vous souhaitez trouver des produits qui ne figurent pas sur une liste, vous pouvez compter sur l’alternative NOT IN. Je veux dire, trouver les produits qui excluent ceux répertoriés dans une colonne séparée.

Si vous avez suivi les exemples précédents, les choses seront faciles pour vous. Il vous suffit de mettre un NOT (opérateur logique NOT) devant la colonne à rechercher.

SQL NOT IN Alternative

=query(A1:C,"Select * where not A matches '"&TEXTJOIN("|",true,E1:E)&"'")

Vous devez ajouter le préfixe NOT à l’identifiant de la colonne, pas en suffixe.

Crawlan.com

Articles en lien