Compartir a través de


Eliminación de duplicados mediante la API de JavaScript de Excel

En este artículo se proporciona un ejemplo de código que quita las entradas duplicadas en un intervalo mediante la API de JavaScript de Excel. Para obtener la lista completa de propiedades y métodos que admite el Range objeto, vea Clase Excel.Range.

Eliminación de filas con entradas duplicadas

El método Range.removeDuplicates quita las filas con entradas duplicadas en las columnas especificadas. El método pasa por cada fila del intervalo desde el índice con valores más bajos hasta el índice con valores más altos del intervalo (de arriba abajo). Una fila se elimina si un valor de su columna o columnas especificadas apareció antes en el rango. Las filas que se encuentran en el rango de abajo de la fila eliminada se desplazan hacia arriba. removeDuplicates no afecta la posición de las celdas fuera del rango.

removeDuplicates toma number[] que representa los índices de columna, que se verifican para detectar duplicados. Esta matriz tiene base cero y es relativa para el rango, no para la hoja de cálculo. El método también toma un parámetro booleano que especifica si la primera fila es un encabezado. Cuando truees , la fila superior se omite al considerar duplicados. El removeDuplicates método devuelve un RemoveDuplicatesResult objeto que especifica el número de filas eliminadas y el número de filas únicas restantes.

Al usar el método de removeDuplicates un rango, tenga en cuenta lo siguiente.

  • removeDuplicates considera valores de celdas, no resultados de funciones. Si dos funciones diferentes dan el mismo resultado, los valores de la celda no se consideran duplicados.
  • Las celdas vacías no son ignoradas por removeDuplicates. El valor de una celda vacía se trata como cualquier otro valor. Esto significa que las filas vacías contenidas dentro del rango se incluirán en RemoveDuplicatesResult.

En el ejemplo de código siguiente se muestra la eliminación de entradas con valores duplicados en la primera columna.

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");
    let range = sheet.getRange("B2:D11");

    let deleteResult = range.removeDuplicates([0],true);
    deleteResult.load();

    await context.sync();

    console.log(deleteResult.removed + " entries with duplicate names removed.");
    console.log(deleteResult.uniqueRemaining + " entries with unique names remain in the range.");
});

Datos antes de que se quiten las entradas duplicadas

Los datos de Excel antes de que se haya ejecutado el método remove duplicates del rango.

Datos después de quitar entradas duplicadas

Datos en Excel después de que se haya ejecutado el método remove duplicates del intervalo.

Vea también