Kurzanleitung für die Bibliothek
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
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:
- 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.
Geben Sie dem 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, 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:
- Ö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.
- Klicken Sie auf Erweiterungen > Apps Script.
- Klicken Sie neben Mediatheken auf „Mediathek hinzufügen“ add.
- 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.
- 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 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.
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.
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.
Schließlich werden die vorhandenen Inhalte des Tabellenblatts gelöscht und die Inhalte des newData
-Arrays eingefügt.
Ä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
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-08-31 (UTC).
[null,null,["Zuletzt aktualisiert: 2025-08-31 (UTC)."],[[["\u003cp\u003eThis guide provides step-by-step instructions to create an Apps Script library that removes duplicate rows from Google Sheets data.\u003c/p\u003e\n"],["\u003cp\u003eThe library uses a JavaScript function to identify and remove duplicate rows by comparing all column values within each row.\u003c/p\u003e\n"],["\u003cp\u003eUsers need a Google Account and a web browser to implement this solution, which involves setting up, deploying, and running the script within a spreadsheet.\u003c/p\u003e\n"],["\u003cp\u003eThe provided code can be modified to remove rows based on matching data in specific columns, enhancing the library's functionality.\u003c/p\u003e\n"]]],[],null,["# Library quickstart\n\nBuild an [Apps Script library](/apps-script/guides/libraries) that you can use to remove duplicate rows in spreadsheet data.\n\nObjectives\n----------\n\n- Set up the script.\n- Run the script.\n\nPrerequisites\n-------------\n\nTo use this sample, you need the following prerequisites:\n\n- A Google Account (Google Workspace accounts might require administrator approval).\n- A web browser with access to the internet.\n\nSet up the script\n-----------------\n\nTo build the library, take the following steps:\n\n1. Sign in to your Google Account.\n2. To open the script editor, go to [script.google.com](https://script.google.com/home).\n3. At the top left, click **New project**.\n4. Delete any code in the script editor and paste in the code below.\n\n sheets/removingDuplicates/removingDuplicates.gs \n [View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/sheets/removingDuplicates/removingDuplicates.gs) \n\n ```javascript\n /**\n * Removes duplicate rows from the current sheet.\n */\n function removeDuplicates() {\n const sheet = SpreadsheetApp.getActiveSheet();\n const data = sheet.getDataRange().getValues();\n const uniqueData = {};\n for (let row of data) {\n const key = row.join();\n uniqueData[key] = uniqueData[key] || row;\n }\n sheet.clearContents();\n const newData = Object.values(uniqueData);\n sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);\n }\n ```\n5. Click Save .\n\n6. At the top left, click **Untitled project**.\n\n7. Name your script **Remove duplicate rows** and click **Rename**.\n\n8. Click **Deploy** \\\u003e **New deployment**.\n\n9. Next to **Select type** click Enable deployment types\n\n \\\u003e **Library**.\n\n10. Enter a description of the library, such as **Remove duplicate rows**. Anyone\n with access to the library can view this description.\n\n11. Click **Deploy**.\n\n12. At the left, click **Project settings** .\n\n13. Under **IDs**, copy the script ID for use in a later step.\n\nRun the script\n--------------\n\nTo use a library, you must have at least view permissions for its\nApps Script project. Since you created the library, you have the\nrequired permissions\nto use it. If you want to let others use the library, give them view permission\nfor the Apps Script project.\n\nTo use the library, take the following steps:\n\n1. Open a Google Sheets spreadsheet that has data with duplicate rows. To use a sample spreadsheet, [make a copy of the **Sample duplicate rows** spreadsheet](https://docs.google.com/spreadsheets/d/1_Tcb0kokQIYCEz_nWnxUHZp8nwTysjjxucMmVZ0DeSg/copy?usp=sharing).\n2. Click **Extensions** \\\u003e **Apps Script**.\n3. Next to **Libraries** , click Add a library add.\n4. In the **Script ID** section, paste the script ID from the library Apps Script project you copied in the previous section.\n5. Click **Look up**.\n6. In the **Version** section, select **1**.\n7. Click **Add**.\n8. Delete any code in the script editor and paste in the code below.\n\n function runLibrary() {\n Removeduplicaterows.removeDuplicates();\n }\n\n9. In the function dropdown, select **runLibrary**.\n\n10. Click **Run**.\n\n11. Return to the spreadsheet to view the updated data without duplicate rows.\n\nReview the code\n---------------\n\nTo review the Apps Script code for this solution, click **View source code**\nbelow: \n\n#### View the source code\n\n\nFirst, the script makes a single call to the spreadsheet to retrieve all the\ndata. You can choose to read the sheet row by row, but JavaScript operations are\nconsiderably faster than talking to other services like Spreadsheet. The fewer\ncalls you make, the faster it goes. This is important because each script\nexecution has a maximum run time of 6 minutes. \nsheets/removingDuplicates/removingDuplicates.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/sheets/removingDuplicates/removingDuplicates.gs) \n\n```javascript\nconst sheet = SpreadsheetApp.getActiveSheet();\nconst data = sheet.getDataRange().getValues();\n```\n\n\nThe variable `data` is a JavaScript 2-dimensional array that contains\nall the values in the sheet. `newData` is an empty array where the\nscript puts all the non-duplicate rows. \nsheets/removingDuplicates/removingDuplicates.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/sheets/removingDuplicates/removingDuplicates.gs) \n\n```javascript\nconst newData = Object.values(uniqueData);\n```\n\n\nThe first `for` loop iterates over each row in the `data`\n2-dimensional array. For each row, the second loop tests if another row with\nmatching data already exists in the `newData` array. If it's not a\nduplicate, the row is pushed into the `newData` array. \nsheets/removingDuplicates/removingDuplicates.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/sheets/removingDuplicates/removingDuplicates.gs) \n\n```javascript\nuniqueData[key] = uniqueData[key] || row;\n```\n\n\nFinally, the script deletes the existing content of the sheet and inserts\nthe content of the `newData` array. \nsheets/removingDuplicates/removingDuplicates.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/sheets/removingDuplicates/removingDuplicates.gs) \n\n```javascript\nsheet.clearContents();\nconst newData = Object.values(uniqueData);\nsheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);\n```\n\nModifications\n-------------\n\nYou can edit the library as much as you'd like to fit your needs. Below is an\noptional modification. \n\n#### Remove rows with matching data in some columns\n\n\nInstead of removing rows that match entirely, you might want to remove rows with\nmatching data in just one or two of the columns. To do that, you can change the\nconditional statement.\n\n\nIn the sample code, update the following line: \n\n```transact-sql\n if(row.join() == newData[j].join()){\n duplicate = true;\n }\n```\n\n\nReplace the line with the following code: \n\n```transact-sql\n if(row[0] == newData[j][0] && row[1] == newData[j][1]){\n duplicate = true;\n }\n```\n\n\nThe above conditional statement finds duplicates each time two rows have the\nsame data in the first and second columns of the sheet.\n\nContributors\n------------\n\nThis sample was created by Romain Vialard, a Google Developer Expert. Follow\nRomain on Twitter [@romain_vialard](https://twitter.com/romain_vialard).\n\nThis sample is maintained by Google with the help of Google Developer Experts.\n\nNext steps\n----------\n\n- [Libraries](/apps-script/guides/libraries)\n- [Create and manage deployments](/apps-script/concepts/deployments)"]]