Power BI · 2026-10-19

Remover duplicatas no Power Query: versão confiável

Saiba remover duplicatas no Power Query com chave e regra de escolha. Separe repetições idênticas de versões conflitantes e confira o registro preservado.

Remover duplicatas no Power Query: versão confiável

Remover duplicatas no Power Query: escolha a versão

Remover duplicatas no Power Query exige definir quais campos identificam o mesmo registro e qual informação precisa permanecer. Duas linhas iguais podem ser uma repetição de carga; duas linhas com a mesma chave e situações diferentes podem representar versões legítimas. Tratar esses casos como equivalentes pode apagar justamente a atualização que deveria chegar ao modelo.

Este roteiro usa um cadastro hipotético com chave, versão e identificador de registro. A proposta é separar repetições idênticas de conflitos e aplicar uma escolha reproduzível quando a regra de negócio permitir. Guarde os dados originais para conferir tanto o resultado mantido quanto os registros descartados.

1. Defina a chave antes de remover duplicatas no Power Query

Escreva qual combinação identifica o evento ou cadastro. Em um pedido, a chave pode exigir documento e sequência do item; o número do pedido sozinho pode reunir várias linhas reais. Em um cadastro versionado, a chave de entidade e a chave de cada registro recebido cumprem papéis diferentes.

Teste exemplos conhecidos antes de remover linhas. Dois pedidos do mesmo cliente, com valor e data iguais, não são necessariamente o mesmo pedido. Se a fonte não fornece uma identificação suficiente, registre essa limitação e revise o contrato do dado, em vez de escolher uma combinação fraca apenas porque ela reduz o número de linhas.

2. Separe repetição idêntica de versão conflitante

Comece agrupando os registros pela chave e contando ocorrências. Depois, compare os campos que podem variar. Repetições idênticas em todos os campos relevantes podem ser tratadas de uma forma; situações, valores ou datas diferentes exigem outra conferência, especialmente quando a origem registra atualizações do mesmo objeto ao longo do tempo.

Mantenha uma consulta de revisão com chave, quantidade e campos divergentes. O perfil de dados ajuda a localizar padrões, mas não decide qual versão é verdadeira. Essa decisão depende de evidência e de uma regra aprovada, como versão de origem ou momento efetivo da atualização, conforme o processo real.

3. Conheça o alcance de Remover Duplicatas

A documentação de duplicidades descreve a remoção com base nas colunas selecionadas. A escolha dessas colunas define quais linhas são consideradas repetidas. Selecione somente os campos que correspondem ao critério aprovado e confira o resultado antes de aplicar a transformação ao conjunto inteiro.

O Power Query distingue maiúsculas de minúsculas nessa comparação. Se o cadastro considera os dois formatos equivalentes, normalize uma coluna auxiliar conforme a regra da fonte e preserve o texto original. Não transforme códigos indiscriminadamente: em determinados cadastros, diferenças de representação podem ter significado que precisa ser confirmado antes da consolidação.

4. Não presuma qual linha será preservada

A referência de Table.Distinct informa que, em geral, não há garantia de qual repetição específica será mantida. Portanto, ordenar uma prévia e remover duplicatas não basta para demonstrar uma escolha de versão. O exemplo abaixo utiliza uma regra explícita dentro de cada grupo.

Primeiro defina a prioridade de negócio. Neste caso hipotético, a maior Versao é preferida e o maior RegistroID resolve empates entre versões, conforme uma convenção assumida para o teste. Esse desempate é apenas uma escolha ilustrativa; um identificador maior não prova, por si só, que um evento aconteceu depois ou contém informação mais correta.

5. Escolha a versão com ordenação dentro do grupo

A linguagem M permite combinar Table.Group, Table.Sort e Table.FirstN para agrupar, ordenar cada conjunto e selecionar uma linha. O exemplo assume chaves preenchidas, versões válidas e RegistroID único na origem, premissas que precisam ser verificadas antes de adaptar a transformação.

let
    Fonte = #table(
        type table [
            Chave = text, Versao = Int64.Type,
            RegistroID = Int64.Type, Situacao = text
        ],
        {
            {"A", 1, 10, "Aberto"},
            {"A", 2, 11, "Em análise"},
            {"A", 2, 12, "Concluído"},
            {"B", 1, 20, "Aberto"}
        }
    ),
    Grupos = Table.Group(
        Fonte, {"Chave"},
        {{"Escolhida", each Table.FirstN(
            Table.Sort(_, {
                {"Versao", Order.Descending},
                {"RegistroID", Order.Descending}
            }), 1
        )}}
    ),
    Resultado = Table.Combine(Grupos[Escolhida])
in
    Resultado

Espere A com versão 2 e RegistroID 12, e B com versão 1 e RegistroID 20. Table.Combine reúne as tabelas selecionadas. A regra determina quais registros permanecem, sem depender da posição em que apareceram inicialmente na prévia; a ordem final das linhas pode ser configurada separadamente para conferência.

6. Bloqueie empates que a regra não consegue resolver

Acrescente um teste para chave, versão e RegistroID repetidos com atributos diferentes. Nesse caso, a regra do exemplo deixou de oferecer um desempate completo. Encaminhe o conflito à revisão e preserve os registros, pois escolher qualquer um esconderia uma ambiguidade que continua presente na origem.

Trate também versões ausentes, chaves vazias e tipos incompatíveis antes da seleção. Uma linha sem chave não deve disputar com todas as outras linhas sem identificação como se fossem a mesma entidade. Separe esses casos da base elegível e informe quanto ficou pendente, mantendo a relação com arquivo e registro recebidos.

7. Mantenha histórico quando a pergunta exigir

Escolher a versão atual pode atender a um cadastro de situação vigente, mas não reconstrói o histórico de mudanças. Se a análise precisa explicar como um pedido evoluiu, preserve os eventos ou versões em uma tabela própria. A escolha de uma linha por entidade deve corresponder à pergunta do modelo, não a uma tentativa genérica de reduzir volume.

Documente a referência utilizada: maior versão recebida, versão efetiva em determinada data ou outra condição aprovada. Um arquivo recebido hoje pode conter uma correção antiga; ordem de chegada e vigência podem divergir. Sem essa definição, dois analistas podem escolher registros diferentes e ambos acreditar que estão mostrando a informação mais recente.

8. Concilie quantidades antes e depois

Registre linhas recebidas, chaves válidas, chaves distintas, linhas selecionadas e conflitos isolados. Confira se a base final contém a quantidade esperada para a granularidade escolhida. Uma redução expressiva não é automaticamente um sucesso: ela pode indicar que a chave foi definida de forma ampla e reuniu eventos que deveriam permanecer separados.

Para arquivos recorrentes, consulte a consolidação de arquivos e verifique reenvios ou sobreposição de períodos. A deduplicação pode controlar repetições já recebidas, mas a correção da origem evita que a mesma falha continue aparecendo a cada atualização e exigindo investigação repetida.

9. Confira relações e execução na fonte real

Depois de escolher os registros, teste as relações com as demais tabelas e confira chaves sem correspondência. O roteiro de mesclagem sem multiplicar vendas ajuda a conferir os vínculos. Uma base com uma linha por chave ainda pode produzir multiplicações quando encontra um cadastro associado que mantém várias versões sem filtro adequado.

Avalie a execução com uma amostra representativa da fonte real, observando o resultado e o tempo de atualização. O artigo de query folding complementa essa conferência. Não apresente o exemplo didático como garantia de desempenho em qualquer conector ou volume; preserve os testes que comprovam seu funcionamento no ambiente utilizado.

10. Guarde uma trilha de seleção e de rejeição

Produza uma saída com a chave, o registro escolhido e o critério aplicado. Mantenha uma segunda relação dos casos descartados ou bloqueados, com motivo. Essa trilha permite explicar por que um valor mudou e distinguir uma atualização legítima de uma exclusão feita por regra incorreta durante a preparação dos dados.

Repita os testes ao incluir uma nova versão, um empate e um registro fora do contrato. Confira também a saída vazia e o esquema esperado pelas etapas seguintes. A remoção confiável de duplicatas termina com uma escolha justificável e reproduzível, deixando visíveis as situações que a regra ainda não consegue resolver com a evidência disponível.

Documentação técnica da Microsoft consultada em 19/10/2026.