Kurzanleitung für die Bibliothek

Erstellen Sie eine Apps Script-Bibliothek, mit der Sie doppelte Zeilen in Tabellendaten entfernen können.

Ziele

  • Richten Sie das Skript ein.
  • Führen Sie das Skript aus.

Vorbereitung

Für dieses Beispiel müssen die folgenden Voraussetzungen erfüllt sein:

  • Ein Google-Konto (für Google Workspace-Konten ist möglicherweise die Genehmigung durch den Administrator erforderlich).
  • Ein Webbrowser mit Internetzugriff.

Skript einrichten

So erstellen Sie die Bibliothek:

  1. Melden Sie sich in Ihrem Google-Konto an.
  2. Rufen Sie script.google.com auf, um den Script-Editor zu öffnen.
  3. Klicken Sie links oben auf Neues Projekt.
  4. Löschen Sie jeglichen Code im Skripteditor und fügen Sie den unten angegebenen Code ein.

    sheets/removingDuplicates/removingDuplicates.gs
    /**
     * Removes duplicate rows from the current sheet.
     */
    function removeDuplicates() {
      const sheet = SpreadsheetApp.getActiveSheet();
      const data = sheet.getDataRange().getValues();
      const uniqueData = {};
      for (let row of data) {
        const key = row.join();
        uniqueData[key] = uniqueData[key] || row;
      }
      sheet.clearContents();
      const newData = Object.values(uniqueData);
      sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
    }
  5. Klicken Sie auf „Speichern“ Symbol „Speichern“.

  6. Klicken Sie links oben auf Unbenanntes Projekt.

  7. Geben Sie dem Skript den Namen Doppelte Zeilen entfernen und klicken Sie auf Umbenennen.

  8. Klicken Sie auf Bereitstellen > Neue Bereitstellung.

  9. Klicken Sie neben Typ auswählen auf „Bereitstellungstypen aktivieren“ Symbol zum Aktivieren von Bereitstellungsarten > Bibliothek.

  10. Geben Sie eine Beschreibung der Bibliothek ein, z. B. Doppelte Zeilen entfernen. Jeder, der Zugriff auf die Bibliothek hat, kann diese Beschreibung sehen.

  11. Klicken Sie auf Bereitstellen.

  12. Klicken Sie links auf Projekteinstellungen Symbol für Projekteinstellungen.

  13. 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, haben Sie die erforderlichen Berechtigungen für die Verwendung. Wenn Sie anderen die Nutzung der Bibliothek ermöglichen möchten, erteilen Sie ihnen die Berechtigung zum Aufrufen des Apps Script-Projekts.

So verwenden Sie die Bibliothek:

  1. Öffnen Sie eine Google-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.
  2. Klicken Sie auf Erweiterungen > Apps Script.
  3. Klicken Sie neben Mediatheken auf „Mediathek hinzufügen“ .
  4. Fügen Sie im Abschnitt Script ID (Skript-ID) die Skript-ID aus dem Apps Script-Bibliotheksprojekt ein, das Sie im vorherigen Abschnitt kopiert haben.
  5. Klicken Sie auf Suchen.
  6. Wählen Sie im Abschnitt Version die Option 1 aus.
  7. Klicken Sie auf Hinzufügen.
  8. Löschen Sie jeglichen Code im Skripteditor und fügen Sie den unten angegebenen Code ein.

    function runLibrary() {
     Removeduplicaterows.removeDuplicates();
    }
    
  9. Wählen Sie im Drop-down-Menü „Funktion“ die Option runLibrary aus.

  10. Klicken Sie auf Ausführen.

  11. 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 Skript alle Daten in der Tabelle ab. Sie können die Tabelle Zeile für Zeile 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.

sheets/removingDuplicates/removingDuplicates.gs
const sheet = SpreadsheetApp.getActiveSheet();
const data = sheet.getDataRange().getValues();

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 nicht doppelten Zeilen einfügt.

sheets/removingDuplicates/removingDuplicates.gs
const newData = Object.values(uniqueData);

Die erste for-Schleife durchläuft jede Zeile im zweidimensionalen Array data. Im zweiten Durchlauf wird für jede Zeile geprüft, ob im newData-Array 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.

sheets/removingDuplicates/removingDuplicates.gs
uniqueData[key] = uniqueData[key] || row;

Schließlich werden die vorhandenen Inhalte des Tabellenblatts gelöscht und die Inhalte des newData-Arrays eingefügt.

sheets/removingDuplicates/removingDuplicates.gs
sheet.clearContents();
const newData = Object.values(uniqueData);
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);

Änderungen

Sie können die Bibliothek nach Bedarf bearbeiten. Unten finden Sie eine optionale Änderung.

Zeilen mit übereinstimmenden Daten in bestimmten Spalten entfernen

Anstatt Zeilen zu entfernen, die vollständig übereinstimmen, möchten Sie möglicherweise 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 oben stehenden bedingten Anweisung werden Duplikate jedes Mal gefunden, wenn zwei Zeilen dieselben Daten in der ersten und zweiten Spalte des Tabellenblatts 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 mit Unterstützung von Google Developer Experts verwaltet.

Nächste Schritte