Erstellen Sie eine Apps Script-Bibliothek, mit der Sie doppelte Zeilen in Tabellendaten entfernen können.
Zielsetzungen
- Richten Sie das Skript ein.
- Führen Sie das Skript aus.
Voraussetzungen
Um dieses Beispiel zu verwenden, müssen die folgenden Voraussetzungen erfüllt sein:
- Ein Google-Konto (für Google Workspace-Konten ist möglicherweise die Administratorgenehmigung erforderlich).
- Ein Webbrowser mit Zugang zum Internet.
Skript einrichten
So erstellen Sie die Bibliothek:
- Melden Sie sich in Ihrem Google-Konto an.
- Rufen Sie script.google.com auf, um den Skripteditor zu öffnen.
- Klicken Sie links oben auf Neues Projekt.
Löschen Sie jeglichen Code im Skripteditor und fügen Sie den unten angegebenen Code ein.
Klicken Sie auf „Speichern“ .
Klicken Sie links oben auf Unbenanntes Projekt.
Nennen Sie das Skript Doppelte Zeilen entfernen und klicken Sie auf Umbenennen.
Klicken Sie auf Bereitstellen > Neue Bereitstellung.
Klicken Sie neben Typ auswählen auf „Bereitstellungstypen aktivieren“ > Bibliothek.
Geben Sie eine Beschreibung der Bibliothek ein, z. B. Doppelte Zeilen entfernen. Jeder mit Zugriff auf die Bibliothek kann diese Beschreibung sehen.
Klicken Sie auf Bereitstellen.
Klicken Sie links auf Projekteinstellungen .
Kopieren Sie unter IDs die Skript-ID zur Verwendung in einem späteren Schritt.
Skript ausführen
Wenn Sie eine Bibliothek verwenden möchten, müssen Sie mindestens Leseberechtigungen für das zugehörige Apps Script-Projekt haben. Da Sie die Bibliothek erstellt haben, haben Sie die erforderlichen Berechtigungen, um sie zu verwenden. Wenn Sie möchten, dass andere die Bibliothek verwenden können, müssen Sie ihnen die Berechtigung zum Ansehen des Apps Script-Projekts erteilen.
So verwenden Sie die Bibliothek:
- Öffnen Sie eine Google-Tabelle, die Daten mit doppelten Zeilen enthält. Wenn Sie eine Beispieltabelle verwenden möchten, erstellen Sie eine Kopie der Tabelle Beispiel für doppelte Zeilen.
- Klicken Sie auf Erweiterungen > Apps Script.
- Klicken Sie neben Bibliotheken auf „Bibliothek hinzufügen“ .
- Fügen Sie im Abschnitt Script-ID die Skript-ID aus dem Apps Script-Projekt der Bibliothek ein, die Sie im vorherigen Abschnitt kopiert haben.
- Klicken Sie auf Suchen.
- Wählen Sie im Abschnitt Version die Option 1 aus.
- Klicken Sie auf Hinzufügen.
Löschen Sie jeglichen Code im Skripteditor und fügen Sie den unten angegebenen Code ein.
function runLibrary() { Removeduplicaterows.removeDuplicates(); }
Wählen Sie im Drop-down-Menü der Funktion runLibrary aus.
Klicken Sie auf Ausführen.
Kehren Sie zur Tabelle zurück, um die aktualisierten Daten ohne doppelte Zeilen anzuzeigen.
Code ansehen
Wenn Sie sich den Apps Script-Code für diese Lösung ansehen möchten, klicken Sie unten auf Quellcode ansehen:
Quellcode aufrufen
Zuerst ruft das Skript die Tabellenkalkulation einzeln auf, um alle Daten abzurufen. Sie können das Tabellenblatt Zeile für Zeile lesen, aber JavaScript-Vorgänge sind deutlich schneller als die Kommunikation mit anderen Diensten wie Google Tabellen. Je weniger Anrufe Sie tätigen, desto schneller geht es. Dies ist wichtig, da jede Skriptausführung eine maximale Ausführungszeit von 6 Minuten hat.
Die Variable data
ist ein zweidimensionales JavaScript-Array, das alle Werte aus dem Tabellenblatt enthält. newData
ist ein leeres Array, in das das Skript alle nicht duplizierten Zeilen einfügt.
Die erste for
-Schleife durchläuft jede Zeile im zweidimensionalen Array data
. Für jede Zeile wird in der zweiten Schleife getestet, ob im Array newData
bereits eine andere Zeile mit übereinstimmenden Daten vorhanden ist. Handelt es sich nicht um ein Duplikat, wird die Zeile in das Array newData
verschoben.
Schließlich löscht das Skript den vorhandenen Inhalt des Tabellenblatts und fügt den Inhalt des Arrays newData
ein.
Abwandlung
Sie können die Bibliothek nach Belieben bearbeiten. Unten sehen Sie eine optionale Änderung.
Zeilen mit übereinstimmenden Daten in einigen Spalten entfernen
Anstatt Zeilen mit vollständiger Übereinstimmung zu entfernen, können Sie Zeilen mit übereinstimmenden Daten in nur einer oder zwei der Spalten entfernen. Dazu können Sie die bedingte Anweisung ändern.
Aktualisieren Sie im Beispielcode die folgende Zeile:
if(row.join() == newData[j].join()){ duplicate = true; }
Ersetzen Sie die Zeile durch den folgenden Code:
if(row[0] == newData[j][0] && row[1] == newData[j][1]){ duplicate = true; }
Mit der obigen bedingten Anweisung werden Duplikate jedes Mal gesucht, wenn zwei Zeilen in der ersten und zweiten Spalte des Tabellenblatts dieselben Daten enthalten.
Beitragende
Dieses Beispiel wurde von Romain Vialard erstellt, einem Google-Entwicklerexperten. Folgen Sie Romain auf Twitter unter @romain_vialard.
Dieses Beispiel wird von Google mit der Unterstützung von Google Developers-Experten gepflegt.