Guida rapida alla libreria
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Crea una libreria Apps Script che puoi utilizzare per rimuovere le righe duplicate nei dati del foglio di lavoro.
Obiettivi
- Configura lo script.
- Esegui lo script.
Prerequisiti
Per utilizzare questo esempio, devi soddisfare i seguenti prerequisiti:
- Un Account Google (gli account Google Workspace potrebbero
richiedere l'approvazione dell'amministratore).
- Un browser web con accesso a internet.
Configurare lo script
Per creare la libreria, procedi nel seguente modo:
- Accedi al tuo Account Google.
- Per aprire l'editor di script, vai alla pagina script.google.com.
- In alto a sinistra, fai clic su Nuovo progetto.
Elimina qualsiasi codice nell'editor di script e incolla il codice riportato di seguito.
Fai clic su Salva
.
In alto a sinistra, fai clic su Progetto senza titolo.
Assegna al tuo script il nome Remove duplicate rows (Rimuovi righe duplicate) e fai clic su Rinomina.
Fai clic su Esegui il deployment > Nuovo deployment.
Accanto a Seleziona tipo, fai clic su Attiva tipi di deployment
> Libreria.
Inserisci una descrizione della libreria, ad esempio Rimuovi righe duplicate. Chiunque
abbia accesso alla raccolta può visualizzare questa descrizione.
Fai clic su Esegui il deployment.
A sinistra, fai clic su Impostazioni progetto
.
Nella sezione ID, copia l'ID script da utilizzare in un passaggio successivo.
Esegui lo script
Per utilizzare una libreria, devi disporre almeno delle autorizzazioni di visualizzazione per il relativo
progetto Apps Script. Poiché hai creato la libreria, disponi delle
autorizzazioni necessarie
per utilizzarla. Se vuoi consentire ad altri di utilizzare la raccolta, concedi l'autorizzazione di visualizzazione
per il progetto Apps Script.
Per utilizzare la raccolta, segui questi passaggi:
- Apri un foglio di lavoro Fogli Google che contiene dati con righe duplicate. Per utilizzare
un foglio di lavoro di esempio, crea una copia del foglio di lavoro Esempio di righe duplicate.
- Fai clic su Estensioni > Apps Script.
- Accanto a Librerie, fai clic su Aggiungi una libreria
add.
- Nella sezione ID script, incolla l'ID script del progetto Apps Script della libreria
che hai copiato nella sezione precedente.
- Fai clic su Cerca.
- Nella sezione Versione, seleziona 1.
- Fai clic su Aggiungi.
Elimina qualsiasi codice nell'editor di script e incolla il codice riportato di seguito.
function runLibrary() {
Removeduplicaterows.removeDuplicates();
}
Nel menu a discesa della funzione, seleziona runLibrary.
Fai clic su Esegui.
Torna al foglio di lavoro per visualizzare i dati aggiornati senza righe duplicate.
Esamina il codice
Per esaminare il codice Apps Script per questa soluzione, fai clic su Visualizza codice sorgente
di seguito:
Visualizza il codice sorgente
Innanzitutto, lo script esegue una singola chiamata al foglio di lavoro per recuperare tutti i
dati. Puoi scegliere di leggere il foglio riga per riga, ma le operazioni JavaScript sono
molto più veloci rispetto alla comunicazione con altri servizi come Fogli. Meno
chiamate fai, più velocemente andrà avanti. Questo è importante perché ogni esecuzione dello script
ha una durata massima di 6 minuti.
La variabile data
è un array bidimensionale JavaScript che contiene
tutti i valori del foglio. newData
è un array vuoto in cui lo script inserisce tutte le righe non duplicate.
Il primo ciclo for
scorre ogni riga dell'array bidimensionale data
. Per ogni riga, il secondo ciclo verifica se esiste già un'altra riga con
dati corrispondenti nell'array newData
. Se non è un duplicato, la riga viene inserita nell'array newData
.
Infine, lo script elimina i contenuti esistenti del foglio e inserisce
i contenuti dell'array newData
.
Modifiche
Puoi modificare la libreria in base alle tue esigenze. Di seguito è riportata una
modifica facoltativa.
Rimuovere le righe con dati corrispondenti in alcune colonne
Anziché rimuovere le righe che corrispondono interamente, potresti voler rimuovere le righe con
dati corrispondenti in una o due colonne. Per farlo, puoi modificare l'istruzione
condizionale.
Nel codice di esempio, aggiorna la seguente riga:
if(row.join() == newData[j].join()){
duplicate = true;
}
Sostituisci la riga con il seguente codice:
if(row[0] == newData[j][0] && row[1] == newData[j][1]){
duplicate = true;
}
L'istruzione condizionale precedente trova i duplicati ogni volta che due righe hanno
gli stessi dati nella prima e nella seconda colonna del foglio.
Collaboratori
Questo esempio è stato creato da Romain Vialard, un Google Developer Expert. Segui
Romain su Twitter @romain_vialard.
Questo esempio è gestito da Google con l'aiuto degli esperti Google.
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-31 UTC.
[null,null,["Ultimo aggiornamento 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)"]]