web-dev-qa-db-fra.com

Interroger plusieurs plages avec les résultats dans la ligne

J'essaie d'interroger cinq plages avec les résultats affichés sur une seule ligne. Pour ce faire, j'utilisais { } avec des virgules séparant chaque plage, mais cela ne me donne que la première plage en retour.

Formule:

=QUERY({A2:C2,D2:F2,G2:I2,J2:L2,M2:O2}, "select Col1, Col2, Col3 where Col3='USA'")

exemple de feuille de calcul

4
Bardo

Nous devons utiliser cinq fonctions QUERY, une pour chaque ensemble de colonnes, puis ajouter autre chose pour supprimer les colonnes vides. Les formules suivantes utilisent JOIN et SPLIT:

=SPLIT(JOIN(",",IFERROR({QUERY({A2:C2},"select Col1, Col2, Col3 where Col3='USA'"),QUERY({D2:F2},"select Col1, Col2, Col3 where Col3='USA'"),QUERY({G2:I2},"select Col1, Col2, Col3 where Col3='USA'"),QUERY({J2:L2},"select Col1, Col2, Col3 where Col3='USA'"),QUERY({M2:O2}, "select Col1, Col2, Col3 where Col3='USA'")},"")),",")


Le séparateur de virgule (ou la barre oblique si la feuille de calcul utilise une virgule comme séparateur décimal) est utilisé comme séparateur de colonne. Remplacez la virgule par un point-virgule.

=QUERY({A2:C2;D2:F2;G2:I2;J2:L2;M2:O2}, "select Col1, Col2, Col3 where Col3='USA'")

1
Rubén
=ARRAYFORMULA(SUBSTITUTE(SPLIT(JOIN(" ",TRANSPOSE(QUERY(TRANSPOSE(QUERY(SUBSTITUTE(
 {A2:C2;D2:F2;G2:I2;J2:L2;M2:O2}," ","♦"),"where Col3='USA'")),,50000)))," "),"♦"," "))

0

0
user0