Ich verwende eine externe Anwendung, um Daten in eine Google-Tabelle einzugeben. Diese Arbeitsmappe wird dann von einer separaten Arbeitsmappe (mit der IMPORTRANGE(spreadsheet_key, range_string)
Funktion) referenziert , die die Daten bearbeitet und interpretiert. Mein Problem ist, dass die referenzierende Arbeitsmappe immer dann aktualisiert wird, wenn ich die referenzierte Arbeitsmappe persönlich ändere. Wenn die externe Anwendung sie ändert, wird sie jedoch nicht aktualisiert.
Ich habe versucht, die "Tabellenkalkulationseinstellungen" so zu bearbeiten, dass jede Minute und bei jeder Änderung eine Neuberechnung erfolgt. Außerdem habe ich in Google Chrome eine Erweiterung installiert, die die Seite stündlich automatisch aktualisiert. Die Daten werden jedoch nicht erneut aus der Arbeitsmappe importiert, auf die verwiesen wird. Auch wenn ich die Formel in eine neue Zelle kopiere, werden die Daten nicht erneut importiert.
Kann ich die referenzierende Arbeitsmappe ändern, um Google Sheets zum erneuten Importieren der Daten zu veranlassen?
Bearbeiten: Um es klar zu machen, ich habe derzeit eine Arbeitsmappe mit Daten, die von einer externen Anwendung eingegeben wurden (nenne sie das "Quellblatt"), und eine andere Arbeitsmappe mit einer IMPORTRANGE
Funktion darin (nenne sie das "Referenzblatt"). Die von der IMPORTRANGE
Funktion im "Referenzierungsblatt" angezeigten Daten enthalten keine von der externen Anwendung eingegebenen Daten, da ich das "Quellblatt" zuletzt persönlich bearbeitet habe. Außerdem verwenden beide Arbeitsmappen die neuen Google Sheets.
Bearbeiten: Diese Frage stimmt auch nicht mit der Frage überein, wie eine Zelle in Google Spreadsheets mit einer Zelle in einem anderen Dokument verknüpft wird. weil ich die angegebene Funktion als Lösung für diese Frage verwende, um Daten aus einer Tabelle zu importieren. Das Problem ist nicht, wie die Daten importiert werden, sondern wie die Datenquelle aktualisiert wird. Ich gehe davon aus, dass Google dies für mich erledigt hätte, aber die Daten im "Referenzblatt" werden nicht aktualisiert, und ich kann sie nur finden, wenn ich physisch in das "Quellblatt" gehe "und bearbeite es selbst.
quelle
separate workbook
Ordnung angezeigt . Wie es aussieht, wurde es gerade eingetippt.Antworten:
Ich habe mit dem gleichen Problem zu kämpfen. Anstatt eine benutzerdefinierte Funktion zu schreiben, füge ich eine andere Abfragezeichenfolge hinzu,
spreadsheet_url
inIMPORTRANGE
der Hoffnung, dass Google jedes Mal, wenn die Seite aktualisiert wird, glaubt, dass Daten aus einer neuen Tabelle abgerufen werden müssen. Ich füge einfach einen neuen Zeitstempel hinzu, um die URL jedes Mal eindeutig zu machen. Es ist ein eklatanter Hack, aber er hat bei mir auf vielen Blättern funktioniert.Meine Formel sah früher so aus:
Und jetzt sieht es so aus:
Aktualisieren:
Diese Methode funktioniert nicht mehr da Google nicht mehr erlaubt
now()
innenimportrange()
. Siehe Kommentar von Hugh unten.quelle
Das Folgende kommt von Jimmy in dieser Web Apps-Antwort .
=now()
Gleichung in eine zufällige Zelle einZ1
=importrange()
Funktion ein, die auf dienow
Funktion des anderen Arbeitsblatts verweist .Ich habe viele andere Vorschläge ausprobiert, einschließlich der Verwendung der
=now()
Funktion, des Tricks "Jetzt URL" in diesem Thread oder von Apps Script, um zufälligen Text in einem festgelegten Intervall einzufügen, aber nichts würde die Aktualisierung des Importbereichs erzwingen, außer einer manuellen Bearbeitung des Quellblatts.quelle
Ich fand den einfachsten Weg, eine einfache
if
Aussage um das zu machenimportrange
.Das funktioniert jedes Mal.
quelle
=if (Now() > now()-1, IMPORTRANGE(B1,B2),)
Die Problemumgehung für Datumsstempel scheint bei mir nicht zu funktionieren - es wird ausdrücklich darauf hingewiesen, dass die Verwendung von Datumsstempeln und Rand-Funktionen nicht zulässig ist.
Mein sehr hackiger Workaround ist, die Zelle zu löschen und dann Strg + Z zu drücken. Es erzwingt jedes Mal eine Aktualisierung. Es ist trivial, dies beim Öffnen oder in bestimmten Zeitintervallen zu skripten, um die Daten auf dem neuesten Stand zu halten.
quelle
Ich habe einen einfachen Hack gefunden, um ein manuelles Zellen-Update zu simulieren und Änderungen in einer externen Tabelle zu starten.
Erstellt eine benutzerdefinierte Funktion wie folgt:
Dann nenne ich es auf meinem Blatt so:
wo
tab!B1
ist eine der Zellen, die ich durch Code ändere.quelle
ODER ... Sie könnten ein einfaches Skript erstellen, indem Sie zuerst den Wert cero (0) und dann die Formel zurückgeben und dies tun:
quelle
Ich konnte mithilfe eines Apps-Skripts mit einer benutzerdefinierten Funktion einen Weg finden, mein Problem zu lösen ( siehe Beschreibung hier ).
Wenn Sie ersetzen
=IMPORTRANGE(spreadsheet_url, range_string)
mit in Ihrer Tabelle=DynamicImportRange(spreadsheet_url, sheet_name, range)
und den Code unten in Extras einfügen -> Skript - Editor -> Leeres Projekt, sollte es funktionieren (siehe diese auf dem Schreiben Apps - Skripte für weitere Informationen).Wenn Sie möchten, dass das Blatt regelmäßig aktualisiert wird, können Sie einen Auslöser einrichten, indem Sie im Anwendungsskript-Fenster auf Ressourcen -> Auslöser des aktuellen Projekts klicken.
quelle
SpreadsheetApp.openById()
oder öffnenSpreadsheetApp.openByUrl()
. Überprüfen Sie hier und hierUm dieses Problem zu
now()
umgehen, können Sie die Einstellungen der Tabelle so ändern, dass sie stündlich aktualisiert werden.Datei -> Tabelleneinstellungen -> Berechnung
Aktualisieren Sie das Blatt, um es bei " Bei Änderung und jeder Stunde " oder "Bei Änderung und jeder Minute" neu zu berechnen . Beachten Sie jedoch, dass bei Auswahl der Option "Neuberechnung jede Minute" die Tabelle möglicherweise nicht mehr reagiert.
quelle
Sie können das Google Sheets-Add-on Sheetgo verwenden , um Ihre Referenz automatisch von einem anderen Blatt aus zu aktualisieren. Sie können 30 Updates pro Monat kostenlos nutzen oder ein kostenpflichtiges Abonnement für weitere Updates abschließen. Dieses Video soll Ihnen die grundlegende Verwendung erklären.
quelle