Compartilhar via


Remover duplicatas usando a API JavaScript do Excel

Este artigo fornece um exemplo de código que remove entradas duplicadas em um intervalo usando a API JavaScript do Excel. Para obter a lista completa de propriedades e métodos compatíveis com o Range objeto, consulte Classe Excel.Range.

Remover linhas com entradas duplicadas

O método Range.removeDuplicates remove linhas com entradas duplicadas nas colunas especificadas. O método passa por cada linha no intervalo do índice de menor valor até o índice de maior valor no intervalo (de cima para baixo). Uma linha é excluída se um valor em sua coluna ou colunas especificadas aparecer mais cedo no intervalo. Linhas no intervalo abaixo da linha excluída são deslocadas para cima. removeDuplicates não afeta a posição de células fora do intervalo.

removeDuplicates leva um number[] representando os índices da coluna que são verificados para duplicatas. Essa matriz é baseada em zero e relativa ao intervalo, não à planilha. O método também usa um parâmetro booliano que especifica se a primeira linha é um cabeçalho. Quando true, a linha superior é ignorada ao considerar duplicatas. O removeDuplicates método retorna um RemoveDuplicatesResult objeto que especifica o número de linhas removidas e o número de linhas exclusivas restantes.

Ao usar o método de removeDuplicates um intervalo, lembre-se do seguinte.

  • removeDuplicates considera valores de célula, não resultados de função. Se as duas funções diferentes forem avaliadas como o mesmo resultado, os valores de célula não são considerados duplicatas.
  • Células vazias não serão ignoradas por removeDuplicates. O valor de uma célula vazia é tratado como qualquer outro valor. Isso significa que as linhas vazias contidas no intervalo serão incluídas em RemoveDuplicatesResult.

O exemplo de código a seguir mostra a remoção de entradas com valores duplicados na primeira coluna.

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.");
});

Dados antes de entradas duplicadas serem removidos

Os dados no Excel antes do método de remover duplicatas do intervalo foram executados.

Dados após entradas duplicadas serem removidos

Os dados no Excel após o método remover duplicatas do intervalo foram executados.

Confira também