Simplifiez les conditions dans plusieurs colonnes dans la clause WHERE de la requête Sheets

Vous pouvez raccourcir une formule de requête Google Sheets lorsque vous souhaitez tester des conditions dans plusieurs colonnes dans une requête. Cela peut certainement impliquer les opérateurs logiques AND, OR dans la clause WHERE de la requête.

Je dédie ce tutoriel à tous les amateurs de requêtes Google Sheets. Ici, je vais essayer de vous donner une idée pour simplifier votre formule de requête Google Sheets dans le cas de conditions impliquant plusieurs colonnes.

La simplification d’une formule de requête dépend du problème que vous souhaitez résoudre. Je vais donc donner quelques exemples dans l’espoir de vous guider dans la bonne direction.

Je vais tester les conditions suivantes dans plusieurs colonnes dans une requête.

  1. J’utiliserai l’opérateur logique AND pour tester si toutes les colonnes spécifiques (dans chaque ligne) sont vides.
  2. Dans le deuxième test, j’utiliserai l’opérateur logique OR pour trouver si l’une quelconque des colonnes spécifiques dans chaque ligne contient des valeurs.

Dans ces tests, toutes les colonnes en question doivent contenir des valeurs de type chaîne de caractères ou des nombres. Je veux dire que je veux tester une condition sur 5 colonnes et que toutes les colonnes doivent contenir des valeurs de type chaîne de caractères ou des nombres.

Passons aux exemples pour mieux comprendre.

Les conditions OR dans plusieurs colonnes dans une requête

Dans un test logique OR, certaines des conditions, pas toutes, doivent être remplies.

Commençons par les valeurs numériques dans la colonne à tester.

Test OR – Valeurs numériques comme conditions dans plusieurs colonnes dans une requête

Voici les données d’exemple. Voici la formule de requête simplifiée qui suit.

Exemple de conditions dans plusieurs colonnes dans la clause WHERE de la requête

=query(A1:K,"Sélectionnez A où C n'est pas vide ou E n'est pas vide ou G n'est pas vide ou I n'est pas vide ou K n'est pas vide",1)

Comment simplifier les conditions dans plusieurs colonnes dans cette formule de requête?

Nous pouvons le faire avec l’aide d’une colonne d’aide virtuelle ainsi qu’une colonne d’aide physique. Commençons d’abord par la colonne d’aide virtuelle.

En utilisant une colonne d’aide virtuelle:

Tout d’abord, voyons la version simplifiée de la formule de requête. Ensuite, vous pouvez trouver l’explication.

=ArrayFormula(query({A1:K,C1:C+E1:E+G1:G+I1:I+K1:K},"Sélectionnez Col1 où Col12>0",1))

Pour être honnête, ce n’est pas la version la plus simple car elle implique une colonne d’aide virtuelle. Mais les conditions dans plusieurs colonnes dans la clause WHERE de la requête ont été simplifiées.

La formule de requête serait encore plus simple si vous utilisez la colonne d’aide physique. Avant d’aller plus loin, laissez-moi expliquer ce que j’ai fait dans cette requête pour la simplifier.

J’ai raccourci cette partie de la clause WHERE de la requête.

where C n'est pas vide ou E n'est pas vide ou G n'est pas vide ou I n'est pas vide ou K n'est pas vide

Cela est raccourci en ;

where Col12>0

Il y a en fait 11 colonnes dans les données dans la plage A1:K. Vous pouvez compter de A à K. La douzième colonne est la colonne virtuelle créée dans les données de la requête comme ça ;

{C1:C+E1:E+G1:G+I1:I+K1:K}

Puisque les colonnes C, E, G, I et K contiennent des valeurs numériques, j’ai ajouté ces valeurs et créé une seule colonne.

En utilisant une colonne d’aide physique:

Entrez simplement cette formule de colonne d’aide dans la cellule L1. Nous avons déjà atteint la colonne K.

=ArrayFormula(if(len(A1:A),C1:C+E1:E+G1:G+I1:I+K1:K,))

Voici la formule de requête qui est réduite au maximum pour simplifier l’utilisation de conditions dans plusieurs colonnes dans une requête. Vous pouvez mettre cette formule dans la cellule M1.

=query(A1:L,"Sélectionnez A où L>0",1)

Test OR – Chaîne de caractères comme conditions dans plusieurs colonnes dans une requête

Ici aussi, je vous propose des solutions basées sur une colonne d’aide virtuelle et une colonne d’aide physique.

Approche avec colonne d’aide virtuelle:

Ici, les colonnes de critères contiennent des valeurs de type chaîne de caractères, donc au lieu de les additionner, vous pouvez les combiner comme ceci :

{A1:K,C1:C&E1:E&G1:G&I1:I&K1:K}

Dans la clause WHERE, la condition simplifiée sera ;

where Col12 n'est pas nul

Voyez comment vous pouvez utiliser une colonne d’aide physique pour raccourcir davantage la formule.

Approche avec colonne d’aide physique:

Vous pouvez simplement entrer cette formule dans la cellule L1. C’est notre formule de colonne d’aide.

=ArrayFormula(if(len(A1:A),C1:C&E1:E&G1:G&I1:I&K1:K,))

Voici la version raccourcie de la requête qui doit être placée dans la cellule M1.

=query(A1:L,"Sélectionnez A où L n'est pas nul",1)

Voilà, vous pouvez simplifier les conditions dans plusieurs colonnes dans une requête. La partie logique OR est terminée. Passons à la prochaine partie.

Les conditions AND dans plusieurs colonnes dans une requête

Dans un test logique AND, toutes les conditions doivent être remplies.

Ici, j’utilise à nouveau les mêmes données d’exemple ci-dessus. Voici la formule pour simplifier.

=query(A1:K,"Sélectionnez A où C n'est pas vide et E n'est pas vide et G n'est pas vide et I n'est pas vide et K n'est pas vide",1)

Test AND – Valeurs numériques comme conditions dans plusieurs colonnes

Je vais simplifier les conditions AND dans plusieurs colonnes dans cette formule de requête. Voici la version simplifiée de la formule.

Sans colonne d’aide :

=ArrayFormula(query({A1:K,0/C1:C+0/E1:E+0/G1:G+0/I1:I+0/K1:K},"Sélectionnez Col1 où Col12=0",1))

Qu’est-ce que la colonne d’aide virtuelle fait ici ?

Lorsque vous divisez 0 par un nombre dans une colonne, cela renverra 0. Cela signifie que la division de zéro par n renvoie 0. Mais si vous divisez 0 par 0 dans une autre colonne, cela renverra l’erreur #DIV/0! car la division par 0 est indéfinie.

Si toutes les colonnes d’une ligne contiennent des valeurs, la formule de la colonne virtuelle aura la valeur 0 dans cette ligne.

=0/C2+0/E2+0/G2+0/I2+0/K2

Voir la capture d’écran ci-dessous pour plus de détails (ceci est uniquement à des fins d’explication).

Là où le zéro est mis en évidence en couleur cyan, cela indique que toutes les colonnes de cette ligne (soulignées en rouge) contiennent des valeurs, sinon vous pouvez voir l’erreur #DIV/0!.

Testez toutes les colonnes ont des nombres dans la requête

Dans la formule simplifiée ci-dessus, la portion ci-dessous comporte ;

where C n'est pas vide et E n'est pas vide et G n'est pas vide et I n'est pas vide et K n'est pas vide

Cela est raccourci en ;

where Col12=0

Avec colonne d’aide physique :

Entrez simplement cette formule dans la cellule L1.

=ArrayFormula(if(len(A1:A),0/C1:C+0/E1:E+0/G1:G+0/I1:I+0/K1:K,))

Ensuite, la formule simplifiée dans la cellule M1.

=query(A1:L,"Sélectionnez A où L=0",1)

Qu’en est-il des chaînes de caractères en tant que critères dans ce cas ?

Test AND – Chaîne de caractères comme conditions dans plusieurs colonnes

Voici la formule normale.

=query(A1:K,"Sélectionnez A où C n'est pas vide et E n'est pas vide et G n'est pas vide et I n'est pas vide et K n'est pas vide",1)

Sans colonne d’aide :

Ici, je vous suggère d’utiliser uniquement la formule de la colonne d’aide. Mais ici aussi, vous pouvez utiliser ma formule simplifiée ci-dessus, bien qu’elle ne soit pas très propre.

Enveloppez simplement les colonnes dans lesquelles nous voulons tester les critères avec la fonction ISTEXT.

=ArrayFormula(query({A1:K,0/istext(C1:C)+0/istext(E1:E)+0/istext(G1:G)+0/istext(I1:I)+0/istext(K1:K)},"Sélectionnez Col1 où Col12=0",1))

Avec colonne d’aide physique :

Entrez simplement cette formule dans la cellule L1.

=ArrayFormula(if(len(A1:A),0/istext(C1:C)+0/istext(E1:E)+0/istext(G1:G)+0/istext(I1:I)+0/istext(K1:K),))

Utilisez cette requête dans la cellule M1.

=query(A1:L,"Sélectionnez A où L=0",1)

Et c’est tout. Amusez-vous bien!

Articles en lien