Wie verknüpfe ich eine Zelle in Google Spreadsheets mit einer Zelle in einem anderen Dokument?

178

Ich habe eine monatliche Tabelle, die sich auf Zahlen des Vormonats stützt. Ich möchte diese Werte dynamisch importieren, anstatt sie auszuschneiden und einzufügen. Ist das möglich? Wie mache ich es?

Jeff Yates
quelle
Übrigens weiß ich, dass dies möglich ist, da ich es einmal getan habe, aber ich kann die Informationen nicht mehr finden oder das Blatt, in dem ich es getan habe. Wenn ich es finde, werde ich ein Update posten.
Jeff Yates

Antworten:

183

IMPORTRANGE() scheint die gewünschte Funktion zu sein.

Aus der Funktionsliste von Google Spreadsheets :

Mit Google Spreadsheets können Sie mithilfe der Funktion ImportRange auf eine andere Arbeitsmappe in der Tabelle verweisen, die Sie gerade bearbeiten. Mit ImportRange können Sie einen oder mehrere Zellwerte aus einer Tabelle in eine andere ziehen. Geben Sie = importRange (Tabellenkalkulationsschlüssel, Bereich) ein, um Ihre eigenen ImportRange-Formeln zu erstellen. Verwenden Sie für Sprachen, in denen Komma für die Dezimaltrennung verwendet wird, ein Semikolon anstelle eines Kommas, um die Argumente in Ihrer Formel zu trennen.

Der Tabellenkalkulationsschlüssel ist ein STRING, der der Schlüsselwert aus der Tabellenkalkulations-URL ist.

Der Bereich ist ein STRING, der den Bereich der zu importierenden Zellen darstellt, optional einschließlich des Blattnamens (standardmäßig das erste Blatt). Sie können auch einen Bereichsnamen verwenden, wenn Sie dies vorziehen.

Da die beiden Argumente STRINGs sind, müssen Sie sie in Anführungszeichen setzen oder auf Zellen verweisen, in denen Zeichenfolgenwerte enthalten sind.

Zum Beispiel:

= importrange ("abcd123abcd123", "sheet1! A1: C10") "abcd123abcd123" ist der Wert im Attribut "key =" auf der URL der Zieltabelle und "sheet1! A1: C10" ist der gewünschte Bereich importiert werden.

= Importbereich (A1, B1) Zelle A1 enthält den String ABCD123ABCD123 und Zelle B1 enthält Sheet1! A1: C10

Hinweis: Um ImportRange verwenden zu können, müssen Sie der Tabelle, aus der ImportRange die Daten abruft, als Viewer oder Mitbearbeiter hinzugefügt worden sein. Andernfalls wird der folgende Fehler angezeigt: "#REF! Fehler: Der angeforderte Tabellenkalkulationsschlüssel, der Titel oder der Zellbereich wurden nicht gefunden."

"key" ist natürlich die Zeichenfolge in der URL für die Kalkulationstabelle, die mit dem key=Parameter übereinstimmt .

Ich habe es gerade getestet, indem ich zwei Tabellen erstellt habe. In Zelle A1 der ersten Zeile habe ich eine Zeichenfolge eingefügt. In die zweite Zelle A1 habe ich =importRange("tgR2P4UTz_KT0Lc270Ijb_A","A1")die Zeichenfolge aus der ersten Tabelle eingefügt. (Ihr Schlüssel wird offensichtlich anders sein.)

(Das Format der Funktion kann auf Ihrem Standort abhängig In Frankreich ist die Formel mit einem Komma nicht gültig ist, so dass Sie es mit einem Semikolon ersetzen müssen. =importRange("tgR2P4UTz_KT0Lc270Ijb_A";"A1"))

ANMERKUNGEN:

  1. Google legt derzeit ein festes Limit von 50 "Arbeitsmappen-übergreifenden Referenzformeln" pro Tabelle fest. Quelle: Größenbeschränkungen für Google Text & Tabellen, Blätter und Folien . (h / t JJ Rohrer )

  2. Die "neue" Google-Tabelle (bald Standard) beseitigt das 50er-Limit von 50er-Cross-Workbook-Referenzformeln ( Google-Support ) (h / t Jacob Jan Tuinstra )

  3. In den "neuen" Google Sheets verwenden Sie auch die gesamte URL als Schlüssel ( Google Support ) (h / t  Punchlinern )

Ale
quelle
3
@Al: Ja! Das ist es! Vielen Dank.
Jeff Yates
+1 Whoa! Ich wusste nicht, dass es eine Inline-Version gibt. Die andere Option ist die Verwendung von Google Apps-Skripten. Erstellen Sie eine Funktion, die SpreadsheetApp.openById ([ID]). GetRange () verwendet, und legen Sie damit einen lokalen Bereich fest.
Evan Plaice
3
Beachten Sie, dass Sie auf 50 Stück (pro Tabelle?) Beschränkt sind (ein festes Google-Limit): support.google.com/drive/answer/37603?hl=de
JJ Rohrer
4
In der neuen Google-Tabelle (bald Standard) wurde das 50er-Limit entfernt: support.google.com/drive/answer/3093340?hl=de
Jacob Jan Tuinstra
4
Außerdem verwenden Sie in den neuen Google Sheets die gesamte URL als Schlüssel. Außerdem werden Sie aufgefordert, beim ersten Aufrufen der Funktion Zugriff auf das angeforderte Blatt zu gewähren.
Punchlinern
29

Wenn Sie auf ein anderes Blatt in dieser anderen Tabelle verweisen möchten, sollte der Blattname NICHT erneut in Anführungszeichen gesetzt werden:

verwenden

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

Anstatt von

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

Oblivious
quelle
6
Vielen Dank. Sie sollten dies als Kommentar zu einer anderen Antwort hinzufügen oder diese Antwort einfach bearbeiten.
Studgeek
10

In der neuen Benutzeroberfläche müssen Sie nur =die Zelle eingeben und dann einfach zu dem anderen Blatt gehen und die gewünschte Zelle auswählen. Wenn Sie es manuell tun möchten oder die alte Oberfläche verwenden, können Sie einfach tun =Sheet1!A1, wo Sheet1der Name des Blatts und A1die Zelle in dem Blatt ist, das Sie interessiert. Dies ist identisch mit Microsoft Excel.

Benjamin Pollack
quelle
6
Wenn der Blattname Leerzeichen enthält, verwenden Sie "Dieses andere Blatt"! A1
akira
12
Was ist mit einem völlig anderen Dokument, wie ich in der Frage gefragt habe?
Jeff Yates
@ Jeff Sorry; Sie haben nicht "Dokument" im Körper erwähnt, und aus irgendeinem Grund dachte ich in meinem Kopf "Blatt". Soweit ich weiß, können Sie keine dynamischen Links zu anderen Dokumenten erstellen . Sie könnten jedoch mehrere Blätter anstelle mehrerer Dokumente verwenden und dann das tun, was ich vorgeschlagen habe. Genau aus diesem Grund führe ich meine eigenen monatlichen Finanzen.
Benjamin Pollack
Es ist okay :) Ich weiß, dass es eine Möglichkeit gibt, dies zu tun, da ich es tatsächlich selbst getan habe, aber ich habe es vergessen und ich kann das Blatt, in dem ich es getan habe, nicht finden.
Jeff Yates
Hiermit wird die gestellte Frage nicht beantwortet - es handelt sich um andere Blätter im selben Dokument.
Brendan
4

Ich habe diese Syntax mit Einfügen -> Neuen Bereich definieren gefunden

BEREICH FÜR VERWEIS AUF ANDERE SPREADSHEET:

Ganze A-Spalte: 'Tabellenkalkulation mit Leerzeichen im Namen'! A: A

Ganze B-Spalte: 'Tabellenkalkulation mit Leerzeichen im Namen'! B: B

usw.

Dann können Sie es verwenden als:

=COUNTIF('First Page'!B:B, "valueToMatch")
Tom Roggero
quelle
1
Ist dies auch für Verweise außerhalb der Tabelle möglich?
Jacob Jan Tuinstra
@JacobJanTuinstra was meinst du mit "außerhalb" der Tabelle?
Tom Roggero
6
Nun, die IMPORTRANGEFunktion kann Daten aus einer anderen Tabelle importieren . Einstellbereiche sind nur innerhalb einer Tabelle gemeint (möglich). Das habe ich mit draußen gemeint.
Jacob Jan Tuinstra
Hiermit wird die gestellte Frage nicht beantwortet. Es wird nur beschrieben, wie auf ein anderes Blatt im selben Dokument verwiesen wird.
Brendan
@brendan benutze IMPORTRANGEwie Jacob sagte.
Tom Roggero
2

So habe ich es gemacht ('importrange ()' neu implementiert):

  • öffne den Script Editor ("tools" -> "scripts" -> "script editor")
  • Stellen Sie eine Funktion wie diese bereit (ohne Überprüfung muss diese verbessert werden, aber Sie haben einen allgemeinen Eindruck):
Funktion REMOTEDATA (inKey, inRange) {

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

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

  return outData;
}
  • Verwenden Sie diese Formel wie folgt in Ihrer Tabelle:
= SUM (REMOTEDATA ("Schlüssel", "SheetName! A1: A10"))

"key" ist der Schlüssel des Dokuments. Sie finden ihn im Parameter "key = xyz" der Dokument-URL.

In der Dokumentation zu den Tabellenkalkulationsdiensten finden Sie weitere Informationen zu diesem Thema.

Akira
quelle
4
Was wäre der Vorteil, wenn Sie dies selbst implementieren würden, anstatt die vorhandene Funktion zu verwenden?
Jeff Yates
1
@ Jeff Yates: Keine, ich habe es nur implementiert, ohne importrange () zu kennen. Sportlichkeit, weißt du? alles im weg von just-because-i-can :)
akira
1
Benutzerdefinierte Funktionen für Tabellenkalkulationen können mit SpreadsheetApp.openById()oder SpreadsheetApp.openByUrl()-> developers.google.com/apps-script/guides/sheets/…
Francesco Vadicamo,
-2

Ich habe es ganz einfach mit Query gemacht, zum Beispiel habe ich 2 Blätter ABC und XYZ und ich möchte den Bereich von A1 nach C30 von Abc nach XYZ importieren. Klicken Sie auf die Zelle, in der der Bereich erscheinen soll, und schreiben Sie Folgendes:

=QUERY(ABC!A1:C30)

Hinweis: Wenn Ihr Blattname Leerzeichen enthält, schreiben Sie natürlich Folgendes:

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

Qamar
quelle
7
Das OP fragte, wie Zellen aus einem anderen Dokument importiert werden sollen . Kann QUERYdas
Vidar S. Ramdal
4
@ VidarS.Ramdal Es kann, aber es muss zum importrange("abcd123abcd123", "sheet1!A1:C10")Beispiel =query(importrange("abcd123abcd123", "sheet1!A1:C10"));-)
Fuhrmanator