Erstellen Sie eine Apps Script-Bibliothek, mit der Sie doppelte Zeilen in Tabellendaten entfernen können.
Zielsetzungen
- Richten Sie das Script ein.
- Führen Sie das Skript aus.
Vorbereitung
Für die Verwendung dieses Beispiels sind die folgenden Voraussetzungen erforderlich:
- Ein Google-Konto (für Google Workspace-Konten ist möglicherweise die Administratorzustimmung erforderlich).
- Einen Webbrowser mit Internetzugriff.
Script einrichten
So erstellen Sie die Bibliothek:
- Melden Sie sich in Ihrem Google-Konto an.
- Rufen Sie script.google.com auf, um den Script-Editor 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 Script 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. Duplizierte Zeilen entfernen. Diese Beschreibung kann von allen Nutzern mit Zugriff auf die Bibliothek aufgerufen werden.
Klicken Sie auf Bereitstellen.
Klicken Sie links auf Projekteinstellungen .
Kopieren Sie unter IDs die Script-ID für einen späteren Schritt.
Skript ausführen
Wenn Sie eine Bibliothek verwenden möchten, benötigen Sie mindestens Leseberechtigungen für das zugehörigen Apps Script-Projekt. Da Sie die Bibliothek erstellt haben, haben Sie die erforderlichen Berechtigungen, sie zu verwenden. Wenn Sie anderen die Nutzung der Bibliothek erlauben möchten, erteilen Sie ihnen die Leseberechtigung für das Apps Script-Projekt.
So verwenden Sie die Bibliothek:
- Öffnen Sie eine Google Tabellen-Tabelle mit Daten mit doppelten Zeilen. 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 Mediatheken auf „Mediathek hinzufügen“ .
- Fügen Sie im Abschnitt Script-ID die Script-ID aus dem Apps Script-Bibliotheksprojekt 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ü „Funktion“ die Option runLibrary aus.
Klicken Sie auf Ausführen.
Kehren Sie zur Tabelle zurück, um die aktualisierten Daten ohne doppelte Zeilen anzusehen.
Code ansehen
Wenn Sie den Apps Script-Code für diese Lösung ansehen möchten, klicken Sie unten auf Quellcode ansehen:
Quellcode aufrufen
Zuerst ruft das Script die Tabelle einmal auf, um alle Daten abzurufen. Sie können das Tabellenblatt zeilenweise lesen. JavaScript-Vorgänge sind jedoch deutlich schneller als die Kommunikation mit anderen Diensten wie Google Tabellen. Je weniger Anrufe Sie machen, desto schneller geht es. Das ist wichtig, da jede Scriptausführung eine maximale Laufzeit von 6 Minuten hat.
Die Variable data
ist ein zweidimensionales JavaScript-Array, das alle Werte im Tabellenblatt enthält. newData
ist ein leeres Array, in das das Script alle Zeilen ohne Duplikate einfügt.
Die erste for
-Schleife durchläuft jede Zeile im zweidimensionalen Array data
. In der zweiten Schleife wird für jede Zeile geprüft, ob im Array newData
bereits eine andere Zeile mit übereinstimmenden Daten vorhanden ist. Wenn es sich nicht um ein Duplikat handelt, wird die Zeile in das newData
-Array eingefügt.
Abschließend löscht das Script den vorhandenen Inhalt des Tabellenblatts und fügt den Inhalt des Arrays newData
ein.
Änderungen
Sie können die Bibliothek nach Bedarf bearbeiten. Unten sehen Sie eine optionale Änderung.
Zeilen mit übereinstimmenden Daten in einigen Spalten entfernen
Anstatt Zeilen zu entfernen, die vollständig übereinstimmen, können Sie auch Zeilen mit übereinstimmenden Daten in nur einer oder zwei 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 jedes Mal Duplikate gefunden, wenn zwei Zeilen in der ersten und zweiten Spalte der Tabelle dieselben Daten enthalten.
Beitragende
Dieses Beispiel wurde von Romain Vialard, einem Google Developer Expert, erstellt. Folgen Sie Romain auf Twitter unter @romain_vialard.
Dieses Beispiel wird von Google mithilfe von Google Developer Experts verwaltet.