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

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

Dans ce tutoriel, je vais vous donner quelques idées pour simplifier votre formule de requête Google Sheets en cas de conditions dans plusieurs colonnes. Tout dépendra du problème que vous souhaitez résoudre, alors je vais vous donner quelques exemples pour vous orienter dans la bonne direction.

Je vais tester les conditions suivantes dans plusieurs colonnes dans la requête :

  1. J’utiliserai l’opérateur logique ET 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 OU pour trouver si l’une des colonnes spécifiques dans chaque ligne contient des valeurs.

Dans ces tests, toutes les colonnes concernées doivent contenir des valeurs de type texte ou des chiffres. Cela signifie que je veux tester une condition dans 5 colonnes et que toutes les colonnes doivent contenir des valeurs de type texte ou des chiffres.

Passons aux exemples pour mieux comprendre.

Les conditions OU dans plusieurs colonnes dans la requête

Dans le test logique OU, l’une des conditions, pas toutes, doit être remplie.

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

Test OU – Valeurs numériques comme conditions dans plusieurs colonnes dans la requête

Voici les données d’exemple. La formule de requête pour simplifier est la suivante :

=query(A1:K,"Select A where C is not null or E is not null or G is not null or I is not null or K is not null",1)

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

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

Utilisation de la colonne auxiliaire virtuelle :

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

=ArrayFormula(query({A1:K,C1:C+E1:E+G1:G+I1:I+K1:K},"Select Col1 where Col12>0",1))

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

La formule de requête sera encore plus simple si vous utilisez une colonne auxiliaire physique. Avant d’y aller, laissez-moi vous 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 is not null or E is not null or G is not null or I is not null or K is not null

Elle est raccourcie en :

where Col12>0

En fait, il y a 11 colonnes dans les données comprises entre 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 ceci :

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

Étant donné que les colonnes C, E, G, I et K contiennent des valeurs numériques, j’ai ajouté ces valeurs pour créer une seule colonne.

Utilisation de la colonne auxiliaire physique :

Il vous suffit d’entrer cette formule de colonne auxiliaire dans la cellule L1. Nous sommes déjà allés jusqu’à 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 raccourcie au maximum pour simplifier l’utilisation de conditions dans plusieurs colonnes dans la requête. Vous pouvez placer cette formule dans la cellule M1.

=query(A1:L,"Select A where L>0",1)

Test OU – Chaîne de texte comme conditions dans plusieurs colonnes dans la requête

Ici aussi, je vous propose des solutions basées sur des colonnes auxiliaires virtuelles et physiques.

Approche de la colonne auxiliaire virtuelle :

Ici, les colonnes de critères contiennent des valeurs de type texte, donc au lieu de les ajouter, vous pouvez les combiner comme suit :

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

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

where Col12 is not null

Voyez comment vous pouvez utiliser une colonne auxiliaire physique pour raccourcir davantage la formule.

Approche de la colonne auxiliaire physique :

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

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

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

=query(A1:L,"Select A where L is not null",1)

De cette façon, vous pouvez simplifier les conditions dans plusieurs colonnes dans la requête. La partie logique OU est terminée. Passons à la partie suivante.

Les conditions ET dans plusieurs colonnes dans la requête

Dans le test logique ET, 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,"Select A where C is not null and E is not null and G is not null and I is not null and K is not null",1)

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

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

Sans colonne auxiliaire :

=ArrayFormula(query({A1:K,0/C1:C+0/E1:E+0/G1:G+0/I1:I+0/K1:K},"Select Col1 where Col12=0",1))

Que fait la colonne auxiliaire virtuelle dans ce cas ?

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

Si toutes les colonnes d’une ligne ont des valeurs, cela signifie que la formule de la colonne virtuelle a la valeur 0 dans cette ligne.

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

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

Testez toutes les colonnes contiennent des chiffres dans la requête

Dans la formule simplifiée ci-dessus, la partie ci-dessous contient :

where C is not null and E is not null and G is not null and I is not null and K is not null

Raccourcie en :

where Col12=0

Avec colonne auxiliaire :

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,"Select A where L=0",1)

Et pour les critères de chaîne de texte dans ce cas ?

Test ET – Chaîne de texte comme conditions dans plusieurs colonnes

Voici la formule normale.

=query(A1:K,"Select A where C is not null and E is not null and G is not null and I is not null and K is not null",1)

Sans colonne auxiliaire :

Ici, je vous suggère d’utiliser uniquement la formule de la colonne auxiliaire. 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 où 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)},"Select Col1 where Col12=0",1))

Avec colonne auxiliaire :

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,"Select A where L=0",1)

Voilà, c’est tout. Profitez-en !

Articles en lien