web-dev-qa-db-fra.com

Google Spreadsheets QUERY () pour combiner plusieurs feuilles, même classeur

Objectif: J'utilise QUERY () dans gSheets pour combiner les données de plusieurs feuilles du même classeur. Les données sont un extrait de GA décomposé en petits segments afin d'empêcher l'échantillonnage. Cela signifie que tous les champs sont identiques, je le reconstitue pour l’analyse.

J'aimerais utiliser QUERY () pour ce faire, car les données sont connectées pour une mise à jour automatique à l'aide du module Google Analytics Sheets. L’idée est que lorsqu’elle sera mise à jour à l’avenir, elle se reconstituera et l’analyse se déroulera sans effort supplémentaire (ni risque d’erreur humaine) de notre part.

J'ai suivi le support Google syntaxe , avec un seul hébergement pour adapter les multiples feuilles. Cela a été mentionné dans d'autres messages et semble fonctionner pour d'autres personnes - cependant, lorsqu'il est associé au référencement IMPORTRANGE en dehors des classeurs. Il doit y avoir une manière similaire de le faire dans le même classeur.

Ce que j'ai essayé:

=QUERY({'LandingPages-Oct1'!A16:F,'LandingPages-Oct2'!A16:F},"select *",0)

^ Toute séparation par virgule entraîne l'importation des feuilles côte à côte

=QUERY({'LandingPages-Oct1'!A16:F;'LandingPages-Oct2'!A16:F},"select *",0)

^ La séparation des feuilles par un point-virgule fait apparaître la première feuille de données, mais pas la seconde.

=QUERY({'LandingPages-Oct1'!A16:F;'LandingPages-Oct2'!A16:F};"select *",0)

^ Le point-virgule séparant les paramètres de requête ne renvoie aucun résultat

Qu'est-ce que je rate?

Exemple de données: _ ​​ https://docs.google.com/spreadsheets/d/1STuBdXPCY-mtJdmKZVblR8WlvLaRPa3tl4Kme10sQBQ/edit?usp=sharing

3
Minadorae

Les feuilles de séparation par point-virgule font apparaître la première feuille de données, mais pas la deuxième.

Cela signifie généralement que vous n'avez pas fait défiler l'écran jusqu'au bas de la feuille pour voir la deuxième partie des données, sous toutes les lignes vides de la première feuille. 

Puisque vous ne voulez probablement pas importer les lignes vides, filtrez-les (par une colonne supposée non vide): 

={filter('LandingPages-Oct1'!A16:F, len('LandingPages-Oct1'!A16:A));
  filter('LandingPages-Oct2'!A16:F, len(LandingPages-Oct2'!A16:A))}

Pas besoin de requête du tout; chaîne de requête "select *" signifie que vous n'interrogez pas vraiment.

7
user6655984

Alternativement, vous pouvez également utiliser la requête pour supprimer les lignes vides

=QUERY({'LandingPages-Oct1'!A16:F; 'LandingPages-Oct2'!A16:F}, "where Col1 <>''")
7
JPV

Compris comment trier par colonne en utilisant la formule ci-dessus:

=SORT(QUERY({'LandingPages-Oct1'!A16:F; 'LandingPages-Oct2'!A16:F}, "where Col1 <>''"),1,TRUE)

Cela va trier par colonne 1.

0
Brando313

En ce qui concerne:

^ La séparation des feuilles par un point-virgule fait apparaître la première feuille de données, mais pas la seconde.

La raison pour laquelle cela ne fonctionnait pas initialement, c’est que le format des deux tableaux n’est pas le même. Après avoir collé le même format, cela a fonctionné à nouveau.

0
Jef Gielen