Erstellen Sie eine Google Apps Script-Bibliothek, mit der Sie doppelte Zeilen in Tabellendaten entfernen können.
Ziele
- Das Script einrichten.
- Führen Sie das Skript aus.
Vorbereitung
Für die Verwendung dieses Beispiels sind folgende Voraussetzungen erforderlich:
- Ein Google-Konto (für Google Workspace-Konten ist möglicherweise eine Genehmigung durch den Administrator erforderlich).
- Ein Webbrowser mit Internetzugang.
Script einrichten
So erstellen Sie die Bibliothek:
- Melden Sie sich in Ihrem Google-Konto an.
- Öffnen Sie den Script-Editor unter script.google.com.
- Klicken Sie links oben auf Neues Projekt.
Löschen Sie vorhandenen Code im Script-Editor und fügen Sie folgenden Code ein.
Klicken Sie auf Speichern
.
Klicken Sie links oben auf Unbenanntes Projekt.
Geben Sie Ihrem Skript den Namen 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, der Zugriff auf die Bibliothek hat, kann diese Beschreibung sehen.
Klicken Sie auf Bereitstellen.
Klicken Sie links auf Projekteinstellungen
.
Kopieren Sie unter IDs die Skript-ID für einen späteren Schritt.
Skript ausführen
Wenn Sie eine Bibliothek verwenden möchten, benötigen Sie mindestens die Berechtigung zum Aufrufen des zugehörigen Apps Script-Projekts. Da Sie die Bibliothek erstellt haben, verfügen Sie über die erforderlichen Berechtigungen. Wenn Sie anderen die Verwendung der Bibliothek ermöglichen möchten, gewähren Sie ihnen die Leseberechtigung für das Apps Script-Projekt.
So verwenden Sie die Bibliothek:
- Öffnen Sie eine Google Sheets-Tabelle mit Daten, die doppelte Zeilen enthält. Wenn Sie eine Beispieltabelle verwenden möchten, erstellen Sie eine Kopie der Tabelle Beispiel für doppelte Zeilen spreadsheet.
- Klicken Sie auf Erweiterungen > Apps Script.
- Klicken Sie neben Bibliotheken auf Bibliothek hinzufügen .
- Fügen Sie im Bereich Skript-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 Bereich Version die Option 1 aus.
- Klicken Sie auf Hinzufügen.
Löschen Sie vorhandenen Code im Script-Editor und fügen Sie folgenden Code ein.
function runLibrary() { Removeduplicaterows.removeDuplicates(); }Wählen Sie im Drop-down-Menü für Funktionen die Option runLibrary aus.
Klicken Sie auf Ausführen.
Kehren Sie zur Tabelle zurück, um die aktualisierten Daten ohne doppelte Zeilen zu sehen.
Code ansehen
Wenn Sie den Apps Script-Code für diese Lösung ansehen möchten, klicken Sie auf Quellcode ansehen:
Quellcode ansehen
Zuerst ruft das Skript alle Daten aus der Tabelle ab. Sie können das Tabellenblatt zeilenweise lesen, aber JavaScript-Vorgänge sind wesentlich schneller als die Kommunikation mit anderen Diensten wie Google Tabellen. Je weniger Aufrufe Sie ausführen, desto schneller geht es. Das ist wichtig, da jede Skriptausfü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 Skript alle nicht doppelten Zeilen einfügt.
Die erste for-Schleife durchläuft jede Zeile im zweidimensionalen Array data. Für jede Zeile wird in der zweiten Schleife 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 Array newData eingefügt.
Schließlich löscht das Skript den vorhandenen Inhalt des Tabellenblatts und fügt den Inhalt des Arrays newData ein.
Änderungen
Sie können die Bibliothek nach Bedarf bearbeiten. Im folgenden Abschnitt finden Sie eine optionale Änderung.
Zeilen mit übereinstimmenden Daten in einigen Spalten entfernen
Anstatt Zeilen zu entfernen, die vollständig übereinstimmen, möchten Sie möglicherweise Zeilen entfernen, die nur in einer oder zwei Spalten übereinstimmende Daten enthalten. 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 diesen Code:
if(row[0] == newData[j][0] && row[1] == newData[j][1]){ duplicate = true; }
Die vorherige bedingte Anweisung findet Duplikate, wenn zwei Zeilen in der ersten und zweiten Spalte des Tabellenblatts dieselben Daten enthalten.
Beitragende
Dieses Beispiel wurde von Romain Vialard, einem Google Developer Expert, erstellt. Folgen Sie Romain auf Twitter @romain_vialard.
Dieses Beispiel wird von Google mit Unterstützung von Google Developer Experts verwaltet.