Kurzanleitung für die Bibliothek

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.

Vorbereitung

Damit Sie dieses Beispiel verwenden können, müssen folgende Voraussetzungen erfüllt sein:

  • Ein Google-Konto (Google Workspace-Konten können Genehmigung des Administrators erforderlich.
  • Ein Webbrowser mit Zugriff auf das Internet.

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“. Das Symbol zum Aktivieren von Bereitstellungstypen > Mediathek.

  10. Geben Sie eine Beschreibung der Bibliothek ein, z. B. Doppelte Zeilen entfernen. Alle mit Zugriff auf die Bibliothek können diese Beschreibung sehen.

  11. Klicken Sie auf Bereitstellen.

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

  13. Kopieren Sie unter IDs die Skript-ID zur Verwendung in einem späteren Schritt.

Skript ausführen

Um eine Bibliothek verwenden zu können, müssen Sie mindestens Leseberechtigungen für die zugehörigen Apps Script-Projekt Da Sie die Bibliothek erstellt haben, erforderliche Berechtigungen um sie zu verwenden. Wenn andere Nutzer die Bibliothek verwenden können, müssen Sie ihnen die Berechtigung zum Lesen erteilen. für das Apps Script-Projekt.

So verwenden Sie die Bibliothek:

  1. Öffnen Sie eine Tabelle in Google Tabellen, die Daten mit doppelten Zeilen enthält. Zur Verwendung Beispieltabelle: Erstellen Sie eine Kopie der Tabelle Beispiel für doppelte Zeilen.
  2. Klicken Sie auf Erweiterungen > Apps Script.
  3. Klicken Sie neben Bibliotheken auf „Bibliothek hinzufügen“.
  4. Fügen Sie im Abschnitt Script-ID die Script-ID aus der Bibliothek von Apps Script ein. Projekt, 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ü für die Funktion runLibrary aus.

  10. Klicken Sie auf Ausführen.

  11. Kehren Sie zur Tabellenkalkulation zurück, um die aktualisierten Daten ohne doppelte Zeilen anzusehen.

Code ansehen

Wenn Sie den Apps Script-Code für diese Lösung überprüfen möchten, klicken Sie auf Quellcode ansehen unten:

Quellcode aufrufen

Zunächst ruft das Skript die Tabelle einmal auf, um alle Daten. Sie können das Tabellenblatt Zeile für Zeile lesen, aber JavaScript-Vorgänge sind erheblich schneller als mit anderen Diensten wie der Tabellenkalkulation. Je weniger desto schneller geht es. Das ist wichtig, weil jedes Skript hat eine maximale Laufzeit von 6 Minuten.

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

Die Variable data ist ein zweidimensionales JavaScript-Array, das alle Werte in der Tabelle. newData ist ein leeres Array, wobei der fügt alle nicht doppelten Zeilen ein.

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

Die erste for-Schleife durchläuft jede Zeile im data. Zweidimensionales Array. Für jede Zeile prüft die zweite Schleife, ob eine andere Zeile mit übereinstimmende Daten sind bereits im Array newData vorhanden. Falls es sich nicht um dupliziert wird, wird die Zeile in das Array newData übertragen.

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

Schließlich löscht das Skript den vorhandenen Inhalt des Tabellenblatts und fügt den Inhalt des newData-Arrays.

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 beliebig oft 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 Zeilen entfernen, Daten in nur einer oder zwei Spalten miteinander abgleichen können. Dazu können Sie die Bedingungsanweisung verwendet wird.

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 die in der ersten und zweiten Spalte des Tabellenblatts zu beginnen.

Beitragende

Dieses Beispiel wurde von Romain Vialard, einem Google-Entwicklerexperten, erstellt. Folgen Romain auf Twitter @romain_vialard

Dieses Beispiel wird von Google mit Hilfe von Google-Entwicklerexperten verwaltet.

Nächste Schritte