Comment gérer plusieurs colonnes OR dans une requête dans Google Sheets

Que faire si vous avez plusieurs colonnes OR à gérer dans une requête Google Sheets ? Si vous avez 2 à 3 colonnes, voire jusqu’à dix colonnes, vous pouvez utiliser plusieurs opérateurs logiques OR en spécifiant chaque colonne. Mais que se passe-t-il si vous avez 50 colonnes ?

Par exemple, la requête ‘data’ couvre la plage A1:AX, ce qui signifie qu’il y a 50 colonnes. Je veux renvoyer la colonne 1 si l’une des colonnes de 6 à 50 contient un mot spécifique. Lorsque vous commencez à rédiger la formule de requête, vous rencontrez des difficultés, car la formule deviendra très longue.

Voici deux formules de requête qui peuvent être utilisées pour tester les colonnes de 6 à 10 :

=QUERY(Sheet1!A1:AX,"Sélectionnez A où F='test' ou G='test' ou H='test' ou I='test' ou J='test'",1)

ou

=QUERY({Sheet1!A1:AX},"Sélectionnez Col1 où Col6='test' ou Col7='test' ou Col8='test' ou Col9='test' ou Col10='test'",1)

Il peut être très difficile de gérer plusieurs colonnes OR dans une requête comme décrit ci-dessus. Nous devons utiliser plusieurs opérateurs logiques OR dans cette formule de requête pour tester les colonnes de 6 à 50.

J’ai déjà publié ici une solution de contournement plus simple. Cette fois-ci, j’en ai une encore plus simple. C’est parti !

Gérer plusieurs colonnes OR dans une requête (colonnes de texte)

Dans un fichier Google Sheets, j’ai des données. Les cinq premières colonnes sont les suivantes :

[Insérer une image ici]

Je vais expliquer le contenu des colonnes de 6 à 50, car il n’est pas possible de l’inclure dans le tableau ci-dessus. Dans les 45 colonnes suivantes, les en-têtes sont les dates séquentielles du 01-Jan-2021 au 14-Feb-2021. Cela signifie que F1 contient 01-Jan-2021 et AX1 contient 14-Feb-2021.

Ces colonnes contiennent l’état présent (marqué P) et l’absence (marqué A) des étudiants dans la colonne A. Voici une capture d’écran d’exemple pour vous aider à comprendre les données en question.

[Insérer une image ici]

Je veux utiliser la requête pour renvoyer le nom des étudiants qui étaient absents un des jours du 01-Jan-2021 au 14-Feb-2021. Cela signifie que je veux gérer plusieurs colonnes OR dans une requête dans Google Sheets. Voici comment faire.

Selon l’exemple ci-dessus, je veux renvoyer les noms « Micheal » et « Angela » car ils étaient absents les 4-Jan-2021 et 7-Jan-2021 respectivement.

Il n’est pas facile de gérer ou d’inclure plusieurs colonnes OR dans une requête de la manière standard comme expliqué avec une formule exemple au début. Nous pouvons utiliser la formule suivante dans une autre feuille du même fichier :

=QUERY({Sheet1!A1:AX,transpose(query(transpose(Sheet1!F1:AX),,9^9))}, "Sélectionnez Col1 où Col51 contient 'A'",1)

Explication de la formule

Dans la cellule AY1, insérez la requête suivante. AY est maintenant une colonne auxiliaire. Nous pouvons éviter de l’utiliser plus tard.

=transpose(query(transpose(Sheet1!F1:AX),,9^9))

Que fait cette requête ? Elle regroupe les colonnes de la colonne 6 à 50. Cela nous aide à gérer plusieurs colonnes OR dans une requête dans Google Sheets. Je vais vous expliquer comment.

Maintenant, au lieu de tester de la colonne 6 à 50 pour voir si l’une des colonnes contient la lettre « A » (absente), nous pouvons le tester uniquement dans la 51e colonne, comme suit :

=QUERY({Sheet1!A1:AY}, "Sélectionnez Col1 où Col51 contient 'A'",1)

Au lieu de Col51=’A’, j’ai utilisé Col51 contient ‘A’ car nous avons besoin d’une correspondance partielle dans la colonne 51. La correspondance partielle avec la sous-chaîne CONTAINS nous aide à le faire.

Pour éviter d’utiliser la colonne auxiliaire AY, j’ai modifié la formule d’origine {Sheet1!A1:AY} comme suit :

{Sheet1!A1:AX,transpose(query(transpose(Sheet1!F1:AX),,9^9))}

Maintenant, nous pouvons supprimer la formule dans la cellule AY1.

La formule ci-dessus ne vous aidera pas toujours à gérer plusieurs colonnes OR dans une requête dans Google Sheets. Parce que nous avons utilisé une correspondance partielle en utilisant la correspondance de sous-chaîne CONTAINS.

Supposons que nous voulions vérifier si l’une des colonnes contient « pomme ». La formule ci-dessus renverrait la colonne 1 si elle correspond à « pomme » ou « ananas » dans la colonne 6-50.

Pour éviter cette correspondance partielle, remplaçons CONTAINS par MATCHES et utilisons le critère suivant :

=QUERY({Sheet1!A1:AX,transpose(query(transpose(Sheet1!F1:AX),,9^9))}, "Sélectionnez Col1 où Col51 matches '.*sapples.*'",1)

Il n’y a pas d’autres changements.

Gérer plusieurs colonnes OR dans une requête Google Sheets (colonnes numériques)

Si les colonnes de 6 à 50 sont numériques, il n’y a pas de changements dans la formule auxiliaire de combinaison de colonnes.

La seule différence sera la correspondance de sous-chaîne dans la requête.

Ici aussi, nous devons utiliser MATCHES au lieu de CONTAINS, de la même manière que pour la correspondance exacte des chaînes.

Voici la formule pour gérer plusieurs colonnes OR numériques dans une requête Google Sheets :

=QUERY({Sheet1!A1:AX,transpose(query(transpose(Sheet1!F1:AX),,9^9))}, "Sélectionnez Col1 où Col51 matches '.*s90s.*'",1)

Cela renverra les noms de la colonne A si l’une des colonnes de 6 à 50 correspond au chiffre 90.

Pour faire correspondre le chiffre 190, remplacez 90 par 190. Les s entourant le chiffre servent à spécifier des caractères d’espace.

C’est tout. Merci de votre attention. Profitez-en !

Articles en lien