Guide de démarrage rapide de la bibliothèque
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Créez une bibliothèque Apps Script que vous pouvez utiliser pour supprimer les lignes en double dans les données de feuille de calcul.
Objectifs
- Configurez le script.
- Exécutez le script.
Prérequis
Pour utiliser cet exemple, vous devez remplir les conditions préalables suivantes :
- Un compte Google (l'approbation de l'administrateur peut être nécessaire pour les comptes Google Workspace).
- Un navigateur Web avec accès à Internet.
Configurer le script
Pour compiler la bibliothèque, procédez comme suit :
- Connectez-vous à votre compte Google.
- Pour ouvrir l'éditeur de script, accédez à script.google.com.
- En haut à gauche, cliquez sur Nouveau projet.
Supprimez tout code éventuellement présent dans l'éditeur de scripts, puis collez dans ce dernier le code ci-dessous.
Cliquez sur Enregistrer
.
En haut à gauche, cliquez sur Projet sans titre.
Nommez votre script Remove duplicate rows (Supprimer les lignes en double), puis cliquez sur Rename (Renommer).
Cliquez sur Déployer > Nouveau déploiement.
En regard de Sélectionner le type, cliquez sur Activer les types de déploiement
> Bibliothèque.
Saisissez une description de la bibliothèque, par exemple Remove duplicate rows (Supprimer les lignes en double). Toute personne ayant accès à la bibliothèque peut voir cette description.
Cliquez sur Déployer.
À gauche, cliquez sur Paramètres du projet
.
Sous ID, copiez l'ID du script pour l'utiliser lors d'une prochaine étape.
Exécuter le script
Pour utiliser une bibliothèque, vous devez au moins disposer des autorisations d'affichage pour son projet Apps Script. Comme vous avez créé la bibliothèque, vous disposez des autorisations requises pour l'utiliser. Si vous souhaitez autoriser d'autres utilisateurs à utiliser la bibliothèque, accordez-leur l'autorisation d'affichage pour le projet Apps Script.
Pour utiliser la bibliothèque, procédez comme suit :
- Ouvrez une feuille de calcul Google Sheets contenant des lignes en double. Pour utiliser un exemple de feuille de calcul, créez une copie de la feuille de calcul Exemple de lignes en double.
- Cliquez sur Extensions > Apps Script.
- À côté de Bibliothèques, cliquez sur Ajouter une bibliothèque add.
- Dans la section ID du script, collez l'ID du script du projet Apps Script de la bibliothèque que vous avez copié dans la section précédente.
- Cliquez sur Rechercher.
- Dans la section Version, sélectionnez 1.
- Cliquez sur Ajouter.
Supprimez tout code éventuellement présent dans l'éditeur de scripts, puis collez dans ce dernier le code ci-dessous.
function runLibrary() {
Removeduplicaterows.removeDuplicates();
}
Dans le menu déroulant des fonctions, sélectionnez runLibrary.
Cliquez sur Exécuter.
Revenez à la feuille de calcul pour afficher les données mises à jour sans lignes en double.
Examiner le code
Pour examiner le code Apps Script de cette solution, cliquez sur Afficher le code source ci-dessous :
Afficher le code source
Tout d'abord, le script effectue un seul appel à la feuille de calcul pour récupérer toutes les données. Vous pouvez choisir de lire la feuille ligne par ligne, mais les opérations JavaScript sont considérablement plus rapides que la communication avec d'autres services tels que Spreadsheet. Moins vous effectuez d'appels, plus le processus est rapide. C'est important, car chaque exécution de script a une durée maximale de six minutes.
La variable data
est un tableau JavaScript à deux dimensions qui contient toutes les valeurs de la feuille. newData
est un tableau vide dans lequel le script place toutes les lignes non en double.
La première boucle for
itère sur chaque ligne du tableau bidimensionnel data
. Pour chaque ligne, la deuxième boucle vérifie si une autre ligne avec des données correspondantes existe déjà dans le tableau newData
. Si ce n'est pas un doublon, la ligne est insérée dans le tableau newData
.
Enfin, le script supprime le contenu existant de la feuille et insère le contenu du tableau newData
.
Modifications
Vous pouvez modifier la bibliothèque autant que vous le souhaitez pour l'adapter à vos besoins. Vous trouverez ci-dessous une modification facultative.
Supprimer les lignes contenant des données identiques dans certaines colonnes
Au lieu de supprimer les lignes qui correspondent entièrement, vous pouvez supprimer celles dont les données correspondent dans une ou deux colonnes seulement. Pour ce faire, vous pouvez modifier l'instruction conditionnelle.
Dans l'exemple de code, modifiez la ligne suivante :
if(row.join() == newData[j].join()){
duplicate = true;
}
Remplacez la ligne par le code suivant :
if(row[0] == newData[j][0] && row[1] == newData[j][1]){
duplicate = true;
}
L'instruction conditionnelle ci-dessus recherche les doublons chaque fois que deux lignes contiennent les mêmes données dans les première et deuxième colonnes de la feuille.
Contributeurs
Cet exemple a été créé par Romain Vialard, un Google Developer Expert. Suivez Romain sur Twitter : @romain_vialard.
Cet exemple est géré par Google avec l'aide des Google Developer Experts.
Étapes suivantes
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/31 (UTC).
[null,null,["Dernière mise à jour le 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)"]]