Crie uma biblioteca do Apps Script para remover linhas duplicadas nos dados da planilha.
Objetivos
- Configure o script.
- Execute o script.
Pré-requisitos
Para usar este exemplo, você precisa dos seguintes pré-requisitos:
- Uma Conta do Google (as contas do Google Workspace podem exigir a aprovação do administrador).
- Um navegador da Web com acesso à Internet.
Configurar o script
Para criar a biblioteca, siga estas etapas:
- Faça login na sua Conta do Google.
- Para abrir o editor de script, acesse script.google.com.
- No canto superior esquerdo, clique em Novo projeto.
Apague o código no editor de script (se houver algum) e cole o código abaixo.
Clique em Salvar .
No canto superior esquerdo, clique em Projeto sem título.
Nomeie o script como Remover linhas duplicadas e clique em Renomear.
Clique em Implantar > Nova implantação.
Ao lado de Selecionar tipo, clique em Habilitar tipos de implantação > Biblioteca.
Insira uma descrição da biblioteca, como Remover linhas duplicadas. Qualquer pessoa com acesso à biblioteca pode conferir essa descrição.
Clique em Implantar.
À esquerda, clique em Configurações do projeto .
Em IDs, copie o ID do script para usar em uma etapa posterior.
Executar o script
Para usar uma biblioteca, é preciso ter pelo menos permissões de leitura no projeto do Apps Script. Como você criou a biblioteca, tem as permissões necessárias para usá-la. Se você quiser permitir que outras pessoas usem a biblioteca, conceda a permissão de visualização para o projeto do Apps Script.
Para usar a biblioteca, siga estas etapas:
- Abra uma planilha do Google Planilhas com dados com linhas duplicadas. Para usar uma planilha de exemplo, faça uma cópia da planilha Exemplo de linhas duplicadas.
- Clique em Extensões > Apps Script.
- Ao lado de Bibliotecas, clique em Adicionar uma biblioteca .
- Na seção ID do script, cole o ID do script do projeto do Apps Script da biblioteca que você copiou na seção anterior.
- Clique em Pesquisar.
- Na seção Versão, selecione 1.
- Clique em Adicionar.
Apague o código no editor de script (se houver algum) e cole o código abaixo.
function runLibrary() { Removeduplicaterows.removeDuplicates(); }
No menu suspenso de funções, selecione runLibrary.
Clique em Executar.
Volte para a planilha para conferir os dados atualizados sem linhas duplicadas.
Revisar o código
Para revisar o código do Apps Script para essa solução, clique em Ver código-fonte abaixo:
Ver o código-fonte
Primeiro, o script faz uma única chamada para a planilha para recuperar todos os dados. É possível ler a planilha linha por linha, mas as operações do JavaScript são consideravelmente mais rápidas do que a comunicação com outros serviços, como a planilha. Quanto menos chamadas você fizer, mais rápido será. Isso é importante porque cada execução de script tem um tempo máximo de execução de 6 minutos.
A variável data
é uma matriz bidimensional em JavaScript que contém
todos os valores da planilha. newData
é uma matriz vazia em que o
script coloca todas as linhas não duplicadas.
O primeiro loop for
itera em cada linha na matriz bidimensional
data
. Para cada linha, o segundo loop testa se outra linha com
dados correspondentes já existe na matriz newData
. Se não for um
duplicado, a linha será inserida na matriz newData
.
Por fim, o script exclui o conteúdo da planilha e insere
o conteúdo da matriz newData
.
Modificações
Você pode editar a biblioteca conforme necessário. Confira abaixo uma modificação opcional.
Remover linhas com dados correspondentes em algumas colunas
Em vez de remover linhas que correspondem totalmente, você pode remover linhas com dados correspondentes em apenas uma ou duas das colunas. Para fazer isso, você pode mudar a expressão condicional.
No código de exemplo, atualize a seguinte linha:
if(row.join() == newData[j].join()){ duplicate = true; }
Substitua a linha pelo seguinte código:
if(row[0] == newData[j][0] && row[1] == newData[j][1]){ duplicate = true; }
A instrução condicional acima encontra duplicatas sempre que duas linhas têm os mesmos dados na primeira e na segunda coluna da planilha.
Colaboradores
Este exemplo foi criado por Romain Vialard, um especialista do Google Developers. Siga Romain no Twitter @romain_vialard.
Esse exemplo é mantido pelo Google com a ajuda de especialistas em desenvolvimento do Google.