Guía de inicio rápido de la biblioteca
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Compila una biblioteca de Apps Script que puedas usar para quitar filas duplicadas en los datos de hojas de cálculo.
Objetivos
- Configura la secuencia de comandos.
- Ejecuta la secuencia de comandos.
Requisitos previos
Para usar esta muestra, necesitas cumplir con los siguientes requisitos previos:
- Una Cuenta de Google (es posible que las cuentas de Google Workspace requieran la aprobación del administrador)
- Un navegador web con acceso a Internet
Configura la secuencia de comandos
Para compilar la biblioteca, sigue estos pasos:
- Accede a tu Cuenta de Google.
- Para abrir el editor de secuencias de comandos, ve a script.google.com.
- En la esquina superior izquierda, haz clic en Proyecto nuevo.
Borra cualquier código que haya en el editor de secuencias de comandos y pega el código que se encuentra a continuación.
Haz clic en Guardar
.
En la esquina superior izquierda, haz clic en Proyecto sin título.
Asigna el nombre Remove duplicate rows a tu secuencia de comandos y haz clic en Rename.
Haz clic en Implementar > Nueva implementación.
Junto a Seleccionar tipo, haz clic en Habilitar los tipos de implementación
> Biblioteca.
Ingresa una descripción de la biblioteca, como Remove duplicate rows. Cualquier persona con acceso a la biblioteca puede ver esta descripción.
Haz clic en Implementar.
A la izquierda, haz clic en Configuración del proyecto
.
En IDs, copia el ID de la secuencia de comandos para usarlo en un paso posterior.
Ejecuta la secuencia de comandos:
Para usar una biblioteca, debes tener al menos permisos de visualización para su proyecto de Apps Script. Como creaste la biblioteca, tienes los permisos necesarios para usarla. Si quieres permitir que otras personas usen la biblioteca, otórgales permiso de visualización para el proyecto de Apps Script.
Para usar la biblioteca, sigue estos pasos:
- Abre una hoja de cálculo de Hojas de cálculo de Google que tenga datos con filas duplicadas. Para usar una hoja de cálculo de muestra, haz una copia de la hoja de cálculo Sample duplicate rows.
- Haz clic en Extensiones > Apps Script.
- Junto a Bibliotecas, haz clic en Agregar una biblioteca
add.
- En la sección ID de secuencia de comandos, pega el ID de secuencia de comandos del proyecto de Apps Script de la biblioteca que copiaste en la sección anterior.
- Haz clic en Buscar.
- En la sección Versión, selecciona 1.
- Haz clic en Agregar.
Borra cualquier código que haya en el editor de secuencias de comandos y pega el código que se encuentra a continuación.
function runLibrary() {
Removeduplicaterows.removeDuplicates();
}
En el menú desplegable de funciones, selecciona runLibrary.
Haz clic en Ejecutar.
Vuelve a la hoja de cálculo para ver los datos actualizados sin filas duplicadas.
Revisa el código
Para revisar el código de Apps Script de esta solución, haz clic en Ver código fuente a continuación:
Ver el código fuente
Primero, la secuencia de comandos realiza una sola llamada a la hoja de cálculo para recuperar todos los datos. Puedes optar por leer la hoja fila por fila, pero las operaciones de JavaScript son considerablemente más rápidas que comunicarse con otros servicios, como Spreadsheet. Cuantas menos llamadas hagas, más rápido se completará el proceso. Esto es importante porque cada ejecución de secuencia de comandos tiene un tiempo de ejecución máximo de 6 minutos.
La variable data
es un array bidimensional de JavaScript que contiene todos los valores de la hoja. newData
es un array vacío en el que la secuencia de comandos coloca todas las filas no duplicadas.
El primer bucle for
itera sobre cada fila del array bidimensional data
. Para cada fila, el segundo bucle prueba si ya existe otra fila con datos coincidentes en el array newData
. Si no es un duplicado, la fila se inserta en el array newData
.
Por último, la secuencia de comandos borra el contenido existente de la hoja y, luego, inserta el contenido del array newData
.
Modificaciones
Puedes editar la biblioteca tanto como quieras para que se ajuste a tus necesidades. A continuación, se muestra una modificación opcional.
Cómo quitar filas con datos coincidentes en algunas columnas
En lugar de quitar las filas que coinciden por completo, es posible que desees quitar las filas con datos coincidentes en solo una o dos de las columnas. Para ello, puedes cambiar la declaración condicional.
En el código de muestra, actualiza la siguiente línea:
if(row.join() == newData[j].join()){
duplicate = true;
}
Reemplaza la línea por el siguiente código:
if(row[0] == newData[j][0] && row[1] == newData[j][1]){
duplicate = true;
}
La instrucción condicional anterior encuentra duplicados cada vez que dos filas tienen los mismos datos en la primera y la segunda columna de la hoja.
Colaboradores
Esta muestra fue creada por Romain Vialard, un Google Developer Expert. Sigue a Romain en Twitter @romain_vialard.
Google mantiene esta muestra con la ayuda de los Google Developer Experts.
Próximos pasos
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-08-31 (UTC)
[null,null,["Última actualización: 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)"]]