web-dev-qa-db-fra.com

Combiner plusieurs feuilles de calcul en une en utilisant IMPORTRANGE

Je voudrais regrouper les données de plusieurs feuilles de calcul dans une seule feuille de calcul.

  • La feuille de calcul 1 a une rangée de chaînes A2: A500
  • La feuille de calcul 2 a une rangée de chaînes A2: A500
  • La feuille de calcul 3 est censée avoir une ligne des deux (feuille de calcul1! A2: A500 ET feuille de calcul2! A2: A500).

Les doublons ne doivent pas être traités différemment. Je voudrais qu'ils apparaissent aussi souvent qu'ils apparaissent dans les différentes feuilles.

Est-il possible de le faire sans écrire de script ou utiliser jQuery, par ex. en utilisant IMPORTRANGE?

Ce qui ne fonctionne pas: J'ai essayé d'utiliser IMPORTRANGE comme suit:

ARRAY{IMPORTRANGE("key-of-spreadsheet1","list!A2:A500"), IMPORTRANGE("key-of-spreadsheet2", "list!A2:A500")}

Cela provoque une erreur.

9
FlorianT.

Vous devriez pouvoir utiliser un tableau vertical dans le Tableur:

={IMPORTRANGE("Sheet1Key","SheetName!A2:A500");IMPORTRANGE("Sheet2Key","SheetName!A2:A500")}
11
Chris Hick

Bien sûr, il est également possible de combiner plusieurs fonctions IMPORTRANGE() avec la fonction QUERY(), ce qui nous donne un meilleur contrôle sur les résultats que nous importons .

Par exemple, nous pouvons utiliser une telle construction :

=QUERY(
  {
    IMPORTRANGE("key-or-url-of-spreadsheet-1", "'sheet-name-1'!A2:Z100");
    IMPORTRANGE("key-or-url-of-spreadsheet-2", "'sheet-name-2'!A2:Z100");
    IMPORTRANGE("key-or-url-of-spreadsheet-3", "'sheet-name-3'!A2:Z100");
    IMPORTRANGE("key-or-url-of-spreadsheet-4", "'sheet-name-4'!A2:Z100")
  },
  "SELECT * WHERE Col1 IS NOT NULL ORDER BY Col3 ASC"
)

Explication:

La requête ci-dessus supprime les lignes vides des plages importées :

SELECT * WHERE Col1 IS NOT NULL

et trie par ordre croissant toutes les données collectées par rapport à la troisième colonne :

ORDER BY Col3 ASC

Pour la descente , il suffit d'utiliser DESC à la place de ASC.

Bien sûr, nous pouvons également arranger tout autre critère, ou les omettre tout afficher sans modification:

"SELECT * "

Remarque:

Afin d'utiliser la requête construite ci-dessus, nous devons d'abord appeler une seule méthode IMPORTIMAGE() pour chacune des feuilles de calcul que nous voulons référencer :

=IMPORTRANGE("key-or-url-of-spreadsheet-1", "'sheet-name-1'!A2:Z100")

Nous devons le faire même si nous nous référons à la même feuille de calcul dans laquelle nous écrivons cette formule, mais pour chaque feuille de calcul, il suffit de le faire une fois .

C'est pour pouvoir connecter ces feuilles et autoriser l'accès aux feuilles (auxquelles nous avons les droits d'accès de toute façon) :

enter image description here

Après avoir autorisé toutes les feuilles de calcul, nous pouvons utiliser la requête ci-dessus.

4
simhumileco

J'applique également la formule ci-dessus pour obtenir des données à partir de plusieurs feuilles de calcul qui obtiennent une erreur quelque chose comme IN ARRAY_LITERAL Un littéral de tableau manquait de valeurs pour une ou plusieurs lignes.

0
AshwiniM