Une formule dynamique pour sélectionner chaque colonne tous les noms dans une requête dans Google Sheets

Si vous avez besoin de sélectionner chaque deuxième ou n-ième colonne dans une requête dans Google Sheets, vous pouvez utiliser la clause Select. Cette tâche est facile si le nombre de colonnes dans votre ensemble de données est limité, comme 5 à 10 colonnes.

Cependant, si vous avez un grand nombre de colonnes, il devient difficile de coder la formule de requête sans faire de fautes de frappe. Dans ce cas, vous devez utiliser une « référence de colonne dynamique dans la clause select de la requête ». Vous trouverez ci-dessous les raisons pour lesquelles je vous recommande cela.

Dans cet exemple, j’ai 10 colonnes et j’ai sélectionné chaque troisième colonne avec une requête.

=query(A1:J,"Select C,F,I")

La même formule sera plus simple si vous utilisez les numéros de colonne comme identifiants de colonne.

=query({A1:J},"Select Col3,Col6,Col9")

Mais qu’en est-il de la plage A1:AZ ? Vous pourriez vous retrouver avec une formule de requête comme celle-ci, n’est-ce pas ?

=query({A1:AZ},"Select Col3, Col6, Col9, Col12, Col15, Col18, Col21, Col24, Col27, Col30, Col33, Col36, Col39, Col42, Col45, Col48, Col51")

La plage A1:AZ contient un total de 52 colonnes. La requête ci-dessus sélectionne chaque troisième colonne dans cette plage. Lorsque vous ajoutez plus de colonnes ou modifiez la plage, vous risquez de rencontrer des problèmes avec votre formule.

Pour résoudre ce problème, j’ai une formule dynamique pour sélectionner chaque n-ième colonne dans une requête. Avec l’aide de cette formule, vous pouvez automatiser les numéros de colonne dans la clause select de la requête.

Vous pouvez facilement modifier le n-ième colonne selon votre choix, que ce soit pour sélectionner chaque deuxième colonne, troisième colonne, quatrième colonne, etc.

Sélectionner chaque n-ième colonne dans une requête dans Google Sheets (Formule dynamique)

Jetons un coup d’œil à la dernière formule de requête ci-dessus. Dans cette formule, nous voulons sélectionner dynamiquement les numéros de colonne.

La partie de la formule jusqu’à ce point serait la même.

Partie 1 de la formule:
=query({A1:AZ},"Select Col3, Col6, Col9, Col12, Col15, Col18, Col21, Col24, Col27, Col30, Col33, Col36, Col39, Col42, Col45, Col48, Col51)

Nous voulons trouver une formule pour générer chaque n-ième colonne.

Partie 2 de la formule:
=ArrayFormula(join(", ",text(query(transpose({column(C1:AZ1);mod(column(C1:AZ1)-column(C1),3)}),"Select Col1 where Col2=0"),"Col0")))

La formule ci-dessus génère les numéros de colonnes n-ièmes à utiliser dans la requête.

Enfin, la formule de requête finale sera la suivante.

Partie 1 & Partie 2 de la formule:
=query({A1:AZ},"Select "&ArrayFormula(join(", ",text(query(transpose({column(C1:AZ1);mod(column(C1:AZ1)-column(C1),3)}),"Select Col1 where Col2=0"),"Col0")))

Pour sélectionner chaque troisième colonne dans une requête, vous pouvez utiliser la formule ci-dessus. Pour justifier le titre de cet article, c’est-à-dire « Formule dynamique pour sélectionner chaque n-ième colonne dans une requête », je dois expliquer comment modifier cette formule.

Sélectionner chaque n-ième colonne dans une requête, de manière dynamique

Dans la formule ci-dessus, la clause select sélectionne Col3, Col6, Col9, etc. Pour modifier cela et commencer par Col1, Col4, Col7, etc., changez la référence de cellule C1 dans la formule en A1. Elle apparaît trois fois dans la formule.

Comment changer la colonne tous les troisièmes pour la colonne tous les seconds ?

C’est contrôlé par le diviseur dans la formule MOD. Il est actuellement réglé sur 3. Changez cela en 2 ou tout autre nombre.

En conclusion, cette fois, je ne vais pas expliquer la formule en détail. Mon objectif était de vous aider à sélectionner dynamiquement les n-ième colonnes dans une requête Google Sheets.

J’espère avoir réussi dans cet aspect. Si vous me demandez de vous expliquer la logique de la formule, elle est assez simple à comprendre.

Avec l’aide de la formule MOD, j’ai généré un tableau de nombres, où les numéros des colonnes n-ièmes sont 0. De même, j’ai généré les numéros des colonnes dans un ordre séquentiel en utilisant la fonction COLONNE.

J’ai utilisé la fonction TRANSPOSE pour former un tableau à deux colonnes, où la première colonne contient les nombres séquentiels et la deuxième colonne la sortie de MOD.

Ensuite, j’ai filtré la première colonne si la deuxième colonne contient 0. Ce sont les colonnes n-ièmes. Ensuite, j’ai ajouté le texte « Col » à l’aide des fonctions TEXT et JOIN.

Lecture connexe:

Pour plus de conseils et astuces sur Google Sheets, visitez Crawlan.com.

Articles en lien