Sélectionner une plage de colonnes

Bonjour,

Est ce possible de sélectionner un plage de colonnes au lieu de les lister toutes

exemple =QUERY(IMPORTRANGE(.....; "select Col20, Col21, Col22";1) => Col20:Col22

Oui et Non

il faut respecter la syntaxe complète, mais elle peut se construire à l'aide d'une formule car il ne s'agit que de texte

par exemple

=arrayformula(join(",";"Col"&sequence(1;3;9;1)))

donnera

Col9,Col10,Col11

on peut alors écrire

=QUERY(IMPORTRANGE(.....; "select "&arrayformula(join(",";"Col"&sequence(1;3;9;1)));1)

en gros, dans sequence tu auras

sequence( 1 , nombre de colonnes , première colonne , incrément )

accès refusé ...

Je pense que c'est partagé

désolé, je t'ai induit en erreur

=QUERY(IMPORTRANGE("_____________";"Original!A1:K");"select "&arrayformula(join(",";"Col"&sequence(1;3;9;1)));1)

je vais corriger mon post plus haut

merci

Bonjour,

J'essai d'ajouter une "Where pour filtrer sur la col2 mais j'ai toujours une erreur.

Autre question:

Est ce possible, via une formule de faire référence à la colonne de sorte que si, il y a un ajout de colonne, on perde pas le lien vers la colonne initiale

Merci

Quand query s'applique directement à une feuille sans transformation/sans importrange, on utilise les lettres ("select A,B,C") dans ce cas, cela reste "figé". Quand on utilise une transformation ou importrange, on utilise un chiffre ("select Col1,Col2,Col3").

Comment faire dans chacun des cas ?

Le premier me semblait plus facile ... mais ce n'est pas forcément le cas !

In fine, dans le second cas, si on connaît par exemple les en-têtes de colonnes, on peut s'y raccrocher avec un EQUIV/MATCH pour y trouver le n° de la colonne et lui adjoindre le préfixe Col.


Concrètement, j'ai ceci

image

les noms de ville sont réels !

je veux les colonnes Nom/Prénom/Département, mais il est probable que j'ajoute des colonnes ou j'en change l'ordre !

alors j'écrirai (avec A:E entre crochets pour pouvoir utiliser la notation ColXX)

=QUERY({A:E},"select Col"& MATCH("Nom",1:1,0) &",Col"& MATCH("Prénom",1:1,0) &",Col"& MATCH("Département",1:1,0) &" where Col1 is not null ",1)

avec un importrange, il faudra en faire un premier pour importer juste les en-têtes et pouvoir déterminer le n° des colonnes concernées.


Pour simplifier ... les formules peuvent donc être longues, mais dans ce cas, le mieux est de construire un tableau en listant les en-têtes souhaitées (ici en G1:I1) avec comme formule

="Col"&MATCH(G1,1:1,0)
image

puis

=QUERY({A:E},"select "& join(",",G2:I2) &" where Col1 is not null ",1)

OK pour la référence au nom des colonnes

dans mon exemple je veux ajouter un filtre avec where, et j'ai une erreur ,pouvez vous m'expliquer comment marche les & et ".

=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1unsjvAFBLx2w2lijmICXbLdU4abayR9SrhSnxlnpBF4/edit#gid=1644135...";"Original!A1:K10");"select Col4, "&arrayformula(join(",";"Col"&sequence(1;3;9;1))) "where Col2=6";1)

Pour moi, sans avoir testé

=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1unsjvAFBLx2w2lijmICXbLdU4abayR9SrhSnxlnpBF4/edit#gid=1644135...";"Original!A1:K10");
"select Col4," & arrayformula(join(",";"Col"&sequence(1;3;9;1))) & " where Col2=6" ; 1)

le mieux est de tester à part et vérifier que cela donne le bon résultat

="select Col4," & arrayformula(join(",";"Col"&sequence(1;3;9;1))) & " where Col2=6"

le & va relier ici 3 parties

"select Col4,"
&
arrayformula(join(",";"Col"&sequence(1;3;9;1))) 
&
" where Col2=6"

Ça marche

Rechercher des sujets similaires à "selectionner plage colonnes"