web-dev-qa-db-fra.com

Comment lier une cellule de Google Spreadsheets à une cellule d'un autre document?

J'ai un tableur mensuel qui s'appuie sur les chiffres du mois précédent. J'aimerais importer ces valeurs de manière dynamique plutôt que de les copier/coller. Est-ce possible? Comment fait-on ça?

176
Jeff Yates

IMPORTRANGE() semble être la fonction que vous souhaitez.

Dans la liste des fonctions Google tableurs :

Google Spreadsheets vous permet de référencer un autre classeur dans la feuille de calcul que vous modifiez actuellement à l'aide de la fonction ImportRange. ImportRange vous permet d'extraire une ou plusieurs valeurs de cellule d'une feuille de calcul dans une autre. Pour créer vos propres formules ImportRange, entrez = importRange (clé de calcul, plage). Pour les langues dans lesquelles la virgule est utilisée pour la séparation décimale, utilisez un point-virgule au lieu d'une virgule pour séparer les arguments de votre formule.

Clé-feuille est une chaîne qui est la valeur de clé de l'URL de la feuille de calcul.

Plage est une chaîne représentant la plage de cellules que vous souhaitez importer, avec éventuellement le nom de la feuille (par défaut, première feuille). Vous pouvez également utiliser un nom de plage si vous préférez.

Étant donné que les deux arguments sont des chaînes, vous devez les inclure entre guillemets ou faire référence à des cellules contenant des valeurs de chaîne.

Par exemple:

= importrange ("abcd123abcd123", "sheet1! A1: C10") "abcd123abcd123" est la valeur de l'attribut "key =" sur l'URL du tableur cible et "sheet1! A1: C10" est la plage souhaitée. être importé.

= importrange (A1, B1) La cellule A1 contient la chaîne ABCD123ABCD123 et la cellule B1 contient le folio Sheet1! A1: C10

Remarque: pour utiliser ImportRange, vous devez avoir été ajouté en tant que visualiseur ou collaborateur à la feuille de calcul à partir de laquelle ImportRange extrait les données. Sinon, vous obtiendrez cette erreur: "#REF! Error: La clé de calcul, le titre de la feuille ou la plage de cellules demandée est introuvable."

"clé" est, bien sûr, la chaîne dans l'URL de la feuille de calcul qui correspond au paramètre key=.

Je viens de le tester en créant deux feuilles de calcul. Dans la cellule A1 de la première, j'ai mis une chaîne. Dans la cellule A1 de la seconde, je mets =importRange("tgR2P4UTz_KT0Lc270Ijb_A","A1") et il affiche la chaîne de la première feuille de calcul. (Votre clé sera évidemment différente.)

(Le format de la fonction peut dépendre de vos paramètres régionaux. En France, la formule n'est pas valide avec une virgule. Vous devez donc la remplacer par un point-virgule: =importRange("tgR2P4UTz_KT0Lc270Ijb_A";"A1").)

REMARQUES:

  1. Google définit actuellement une limite stricte de 50 "formules de référence inter-classeurs" par feuille de calcul. Source: limites de taille de Google Documents, Feuilles et Diapositives . (h/t JJ Rohrer )

  2. Le "nouveau" tableur Google (bientôt le standard) supprime la limite de 50 formules de référence pour classeurs croisés "( Support Google ) (h/t - Jacob Jan Tuinstra )

  3. Dans les "nouvelles" fiches Google, vous utilisez également l’URL complète comme clé ( Support Google ) (h/t Punchlinern )

179
ale

Pour votre information, si vous souhaitez référencer une autre feuille dans cette autre feuille de calcul, le nom de la feuille ne doit PAS être cité à nouveau:

utilisation

=importRange("tgR2P4UTz_KT0Lc270Ijb_A","Sheet Name!A1:A10")

au lieu de

=importRange("tgR2P4UTz_KT0Lc270Ijb_A","'Sheet Name'!A1:A10")

29
0blivious

Dans la nouvelle interface, vous devriez simplement pouvoir taper = dans la cellule, puis aller simplement à l'autre feuille et choisir la cellule souhaitée. Si vous voulez le faire manuellement ou utilisez l'ancienne interface, vous pouvez simplement faire =Sheet1!A1, où Sheet1 est le nom de la feuille et A1 est la cellule de cette feuille. vous vous souciez. Ceci est identique à Microsoft Excel.

10
Benjamin Pollack

J'ai trouvé cette syntaxe avec Insert -> Define new range

GAMME POUR REFERENCER UNE AUTRE REPARTITION:

Toute une colonne: 'Tableur avec des espaces dans le nom'! A: A

Toute la colonne B: 'Feuille de calcul avec des espaces dans le nom'! B: B

etc.

Ensuite, vous pouvez l'utiliser comme:

=COUNTIF('First Page'!B:B, "valueToMatch")
4
Tom Roggero

voici comment je l'ai fait (réimplémenté 'importrange ()'):

  • ouvrez l'éditeur de script ("outils" -> "scripts" -> "éditeur de script")
  • fournissez une fonction comme celle-ci (sans aucun contrôle, ceci doit être amélioré mais vous avez une idée générale):
 fonction REMOTEDATA (inKey, inRange) {
 
 var outData; 
 var ss = SpreadsheetApp.openById (inKey); 
 
 if (ss) {
 outData = ss.getRange (inRange) .getValues ​​(); 
} 
 
 renvoyer les données; 
} 
  • utilisez cette formule comme ceci dans votre feuille de calcul:
 = SUM (REMOTEDATA ("key", "SheetName! A1: A10")) 

"clé" est la clé du document, vous la trouverez dans le paramètre "clé = xyz" de l'URL du document.

la documentation de ' tableur ' fournit plus d'informations sur le sujet.

2
akira