Come posso collegare una cella in Fogli di lavoro Google a una cella in un altro documento?


178

Ho un foglio di calcolo mensile che si basa su cifre del mese precedente. Vorrei importare questi valori in modo dinamico piuttosto che tagliarli e incollarli. È possibile? Come lo faccio?


A proposito, so che è possibile come ho fatto una volta, ma non riesco più a trovare le informazioni o il foglio in cui le ho fatte. Se le trovo, posterò un aggiornamento.
Jeff Yates,

Risposte:


183

IMPORTRANGE() sembra essere la funzione che desideri.

Dall'elenco delle funzioni dei fogli di calcolo di Google :

Fogli di lavoro Google ti consente di fare riferimento a un'altra cartella di lavoro nel foglio di lavoro che stai modificando utilizzando la funzione ImportRange. ImportRange ti consente di estrarre uno o più valori di cella da un foglio di calcolo a un altro. Per creare le tue formule ImportRange, inserisci = importRange (foglio di calcolo, intervallo). Per le lingue in cui la virgola viene utilizzata per la separazione decimale, utilizzare un punto e virgola anziché una virgola per separare gli argomenti nella formula.

Spreadsheet-key è una STRING che è il valore chiave dall'URL del foglio di calcolo.

L'intervallo è una STRING che rappresenta l'intervallo di celle che si desidera importare, facoltativamente includendo il nome del foglio (il valore predefinito è il primo foglio). Puoi anche usare un nome intervallo se preferisci.

Dato che i due argomenti sono STRING, è necessario racchiuderli tra virgolette o fare riferimento a celle che contengono valori stringa.

Per esempio:

= importrange ("abcd123abcd123", "sheet1! A1: C10") "abcd123abcd123" è il valore dell'attributo "key =" sull'URL del foglio di calcolo di destinazione e "sheet1! A1: C10" è l'intervallo che si desidera essere importato.

= importrange (A1, B1) La cella A1 contiene la stringa ABCD123ABCD123 e la cella B1 contiene il foglio1! A1: C10

Nota: per utilizzare ImportRange, devi essere stato aggiunto come visualizzatore o collaboratore al foglio di calcolo da cui ImportRange sta estraendo i dati. In caso contrario, verrà visualizzato questo errore: "Errore #REF !: Impossibile trovare la chiave del foglio di calcolo, il titolo del foglio o l'intervallo di celle richiesti."

"chiave" è, ovviamente, la stringa nell'URL per il foglio di calcolo che corrisponde al key=parametro.

L'ho appena provato creando due fogli di calcolo. Nella cella A1 della prima ho inserito una stringa. Nella cella A1 del secondo, ho messo =importRange("tgR2P4UTz_KT0Lc270Ijb_A","A1")e ha visualizzato la stringa dal primo foglio di calcolo. (La tua chiave sarà ovviamente diversa.)

(Il formato della funzione può dipendere dal vostro locale In Francia la formula non è valida con una virgola, quindi avrai bisogno di sostituirlo con un punto e virgola:. =importRange("tgR2P4UTz_KT0Lc270Ijb_A";"A1"))

APPUNTI:

  1. Google attualmente impone un limite massimo di 50 "formule di riferimento per le cartelle di lavoro incrociate" per foglio di calcolo. Fonte: limiti di dimensioni di Google Documenti, Fogli e Presentazioni . (h / t JJ Rohrer )

  2. Il "nuovo" foglio di calcolo di Google (che presto sarà lo standard) rimuove il limite di 50 "formule di riferimento per la cartella di lavoro incrociata da 50" ( supporto Google ) (h / t Jacob Jan Tuinstra )

  3. Nei "nuovi" Fogli Google utilizzi anche l'intero URL come chiave ( supporto Google ) (h / t  Punchlinern )


3
@Al: Sì! Questo è tutto! Grazie.
Jeff Yates,

+1 Whoa! Non mi ero reso conto che esistesse una versione in linea. L'altra opzione è utilizzare gli script di Google Apps. Crea una funzione che utilizza SpreadsheetApp.openById ([ID]). GetRange () e imposta un intervallo locale con quello.
Evan Plaice,

3
Vale la pena notare che sarai limitato a 50 di questi (per foglio di calcolo?) (Un limite massimo di Google): support.google.com/drive/answer/37603?hl=it
JJ Rohrer

4
Nel nuovo foglio di calcolo di Google (che presto sarà lo standard), il limite di 50 è stato rimosso: support.google.com/drive/answer/3093340?hl=it
Jacob Jan Tuinstra,

4
Inoltre, nei nuovi Fogli Google usi l' intero URL come chiave. Inoltre, viene richiesto di concedere l'accesso al foglio richiesto quando si accede per la prima volta alla funzione.
Punchlinern,

29

Cordiali saluti, se si desidera fare riferimento a un altro foglio all'interno di tale altro foglio di calcolo, il nome del foglio NON deve essere citato nuovamente:

uso

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

invece di

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


6
Grazie. Dovresti aggiungere questo come commento ad un'altra risposta o anche solo modificare quella risposta.
Studgeek

10

Nella nuova interfaccia, dovresti semplicemente essere in grado di digitare =la cella, quindi vai sull'altro foglio e scegli la cella che desideri. Se vuoi farlo manualmente o stai usando la vecchia interfaccia, puoi semplicemente farlo =Sheet1!A1, dov'è Sheet1il nome del foglio ed A1è la cella su quel foglio che ti interessa. Questo è identico a Microsoft Excel.


6
se il nome del foglio contiene spazi bianchi, usa "Questo altro foglio"! A1
akira

12
Che dire di un documento completamente diverso, come ho fatto nella domanda?
Jeff Yates,

@jeff Siamo spiacenti; non hai menzionato "documento" nel corpo, e per qualche ragione, nella mia testa, ho pensato "foglio". Per quanto ne so, non è possibile collegare dinamicamente a un altro documento . Ma potresti usare più fogli, piuttosto che più documenti, a quel punto potresti fare quello che ti ho suggerito. È così che gestisco le mie finanze mensili, proprio per questo motivo.
Benjamin Pollack,

Va bene :) So che c'è un modo per farlo dato che l'ho fatto da solo, ma ho dimenticato e non riesco a trovare il foglio in cui l'ho fatto.
Jeff Yates,

Questo non risponde alla domanda posta - sta parlando di altri fogli nello stesso documento.
brendan,

4

Ho trovato questa sintassi usando Inserisci -> Definisci nuovo intervallo

GAMMA PER RIFERIMENTO ALTRI FOGLI DI SPREADS:

Tutta una colonna: "Foglio di calcolo con spazi nel nome"! A: A

Colonna B intera: "Foglio di calcolo con spazi nel nome"! B: B

eccetera.

Quindi puoi usarlo come:

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

1
Questo è possibile anche per riferimenti all'esterno del foglio di calcolo?
Jacob Jan Tuinstra,

@JacobJanTuinstra cosa intendi con "fuori" dal foglio di calcolo?
Tom Roggero,

6
Bene, la IMPORTRANGEfunzione può importare dati da un altro foglio di calcolo. L'impostazione degli intervalli è solo (possibile) all'interno di un foglio di calcolo. Questo è ciò che intendevo con l'esterno.
Jacob Jan Tuinstra,

Questo non risponde alla domanda posta - sta solo descrivendo come fare riferimento a un altro foglio nello stesso documento.
brendan,

@brendan usa IMPORTRANGEcome ha detto Jacob.
Tom Roggero,

2

ecco come l'ho fatto (reimplementato 'importrange ()'):

  • aprire l'editor degli script ("strumenti" -> "script" -> "script editor")
  • fornire una funzione come questa (senza alcun controllo, questo deve essere migliorato ma si ottiene l'idea generale):
funzione REMOTEDATA (inKey, inRange) {

  var outData;  
  var ss = SpreadsheetApp.openById (inKey);

  if (ss) {
     outData = ss.getRange (inRange) .getValues ​​();
  }

  return outData;
}
  • usa questa formula in questo modo nel tuo foglio di calcolo:
= SOMMA (REMOTEDATA ("chiave", "SheetName! A1: A10"))

"chiave" è la chiave del documento, la trovi nel parametro "chiave = xyz" dell'URL del documento.

la documentazione per " servizi di foglio di calcolo " fornisce ulteriori informazioni sull'argomento.


4
Quale sarebbe il vantaggio di implementarlo da soli anziché utilizzare la funzione esistente?
Jeff Yates,

1
@Jeff Yates: nessuno, l'ho appena implementato senza conoscere importrange (). sportività, lo sai? tutto in termini di just-because-i-can :)
Akira

1
sfortunatamente le funzioni personalizzate del foglio di calcolo non possono più aprire altri fogli di calcolo utilizzando SpreadsheetApp.openById()o SpreadsheetApp.openByUrl()-> developers.google.com/apps-script/guides/sheets/…
Francesco Vadicamo

-2

L'ho fatto in modo molto semplice utilizzando Query, ad esempio, ho 2 fogli ABC e XYZ e voglio importare l'intervallo da A1 a C30 da Abc in XYZ, fare clic sulla cella in cui si desidera visualizzare l'intervallo e scrivere questo:

=QUERY(ABC!A1:C30)

Nota: se il nome del tuo foglio ha spazi, ovviamente, scrivi questo:

=QUERY('ABC 1'!A1:C30)


7
L'OP ha chiesto come importare celle da un altro documento . Puoi QUERYfarlo?
Vidar S. Ramdal,

4
@ VidarS.Ramdal Può, ma ha bisogno importrange("abcd123abcd123", "sheet1!A1:C10")ad es. =query(importrange("abcd123abcd123", "sheet1!A1:C10"));-)
Fuhrmanator
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.