Ist es in Google Forms möglich, jeder Zeile, die in die Tabelle eingefügt wird, sowie dem Zeitstempel einen eindeutigen Wert zuzuweisen?
google-sheets
google-forms
Toby Allen
quelle
quelle
Antworten:
Sie können dies tun, indem Sie einen Skript-Trigger hinzufügen.
Angenommen, Ihr aktuelles Formular enthält zwei Spalten
Timestamp
und die Antwort auf eine Frage. Sie haben also momentan die Spalten A und B, die mit Daten gefüllt sind. Nehmen wir an, Sie möchten, dass in Spalte C die Nummer automatisch erhöht wird.Sie müssen zuerst zu > gehen
Tools
Script Editor
Geben Sie im Skripteditor das folgende Skript ein:
Speichern Sie das Skript, gehen Sie zum
Triggers
Menü und wählen SieCurrent script's triggers
Füllen Sie die Dropdowns wie folgt aus:
Klicken
Save
Speichern und schließen Sie dann das Google App Script-Fenster.
Wenn Ihr Formular jetzt gesendet wird, wird die Zeilennummer in Spalte C zusammen mit den Daten, die über Ihr Formular gesendet wurden, eingetragen.
Wenn Sie die Spalte ändern möchten, in der die Zeilennummer gespeichert wird, müssen Sie die folgende Zeile des Skripts ändern:
sheet.getRange(row,3).setValue(row);
und ändern Sie den Wert 3 in die entsprechende Spaltenindexnummer.
quelle
Zusätzlich zu der hervorragenden Antwort von Barry können Sie, wenn Sie Zeilen entfernen und dennoch eine eindeutige ID behalten möchten, eine statische Zelle haben, die eine Zählung aufrechterhält. Sie können diese Nummer dann verwenden und bei jedem neuen Eintrag in der Tabelle erhöhen.
Die Änderung besteht also darin, eine Zahl in Ihrer Tabelle zu speichern ('M1' im Code unten) und den Code so zu ändern, dass er wie folgt aussieht:
Ändern Sie erneut die vorletzte Zeile, um die Position Ihrer ID zu ändern.
quelle
Aufbauend auf beiden vorherigen Antworten (von Barry und Danny):
Angenommen, die ID-Spalte ist Spalte A. Wählen Sie eine "Nächste ID" -Zelle aus und stellen Sie sie auf die folgende Formel ein (vorausgesetzt, sie befindet sich in "P1"):
Erstellen Sie ein Skript mit dem Skript-Editor im Menü "Extras" und fügen Sie Folgendes ein:
Fügen Sie einen Skript-Trigger über das Menü "Trigger" im Skript-Editor hinzu:
quelle
Weiter zu den obigen Antworten - Für diese Lösung ist keine zusätzliche Tabellenzelle erforderlich.
Sie können die eingebauten Ereignishandler zum Senden des Formulars verwenden, um eine eindeutige ID zu erhalten. Da das Arbeitsblatt nur das Ziel für das Formular ist, wird die Antwort beim Löschen einer Zeile nicht wirklich gelöscht. In diesem Sinne ...
BEARBEITEN: ID-Notwendigkeit entfernt und Datumsformatierungsprobleme behoben.
quelle
getUniqueID
Funktion kann stark vereinfacht werden, indem einfach die Länge der bisherigen Antworten zurückgegeben wird (das ist, was die Logik dieser oben beschriebenen Funktion auf eine ziemlich verworrene Weise tut). Grundsätzlich eine einzige Zeile in der Funktion:return getConnectedForm().getResponses().length;
Dies ist eine Ableitung der anderen Antworten, kann aber für zukünftige Benutzer nützlich sein.
Der Hauptunterschied besteht darin, dass Spalte 1 in der aktiven Zeile aktualisiert wird, wenn diese Zeile bearbeitet wird, jedoch nur, wenn noch kein Wert angegeben wurde.
Sie sollten den Auslöser wie in den anderen Antworten beschrieben auf on edit setzen.
quelle
Für "Ist es in Google Form möglich, jeder Zeile, die in die Tabelle eingefügt wird, sowie dem Zeitstempel einen eindeutigen Wert zuzuweisen?" Dies sollte auch das Löschen einer Zeile im Formularantwortenblatt vor dem Hinzufügen einer weiteren Antwort ohne Duplizieren von Werten ermöglichen:
quelle