Contando Duplicados com Power Query

No artigo de hoje, o dataholic Rafael Barbosa fez questão de deixar bem explicado o processo de acabar com as colunas duplicadas no Power Query. Vem conferir!


Criar colunas dentro do Power Query é muito mais performático do que utilizar colunas calculadas quando possível, mesmo assim é mais fácil você encontrar uma solução na internet utilizando DAX em uma coluna calculada do que utilizando linguagem M no Power Query. Neste caso quero contar na coluna "Equipamento superior" a quantidade de códigos que existem na minha tabela para identificar valores duplicados e qual a quantidade.


1° - Etapa addCount, agrupa a coluna que você quer contar os itens duplicados com Table.Group e adiciona a coluna "Duplicado", que vai informar a quantidade de vezes que aquele item se repete na tabela.


addCount =
Table.Group(
  Etapa_Anterior,           //Chama a etapa =  Etapa_Anterior
  {"Equipamento superior"}, //Seleciona a coluna"Equipamento superior"
  {{"Duplicado", Table.RowCount, type number}} //Quantidade de duplicados
)


2° - Etapa Mesclar, agora vamos mesclar a tabela do passo anterior na nossa tabela. Como o nome das colunas utilizadas como chave na hora de mesclar tem o mesmo nome o JoinKind.Inner, traz somente as outras colunas eliminando uma etapa de expandir.


Mesclar =
Table.Join(
   Etapa_Anterior,           //Chama a etapa =  Etapa_Anterior
   {"Equipamento superior"}, //Seleciona a coluna"Equipamento superior"
   addCount,                 //Chama a etapa =  addCount
   {"Equipamento superior"}, //Seleciona a coluna"Equipamento superior"
   JoinKind.Inner            //Mesclagem do tipo InnerJoin
)


Ou podemos juntar tudo na mesma etapa de duas formas:


Mesclar =
Table.Join(
      Etapa_Anterior,
      {"Equipamento superior"},
      Table.Group(
           Etapa_Anterior,
           {"Equipamento superior"},
           {{"Duplicado", Table.RowCount, type number}}
      ),
      {"Equipamento superior"},
      JoinKind.Inner
)

O modo é utilizando o let in, comprando com DAX o let seria como o VAR e o in o RETURN, com isso podemos criar sub etapas dentro de uma etapa, assim fica mais fácil de entender o que foi feito, além de ser um bom modo de ocultar etapas auxiliares. Para baixar o exemplo do artigo clique aqui.


let
addCount = 
Table.Group(
    Etapa_Anterior,
    {"Equipamento superior"},
  {{"Duplicado", Table.RowCount, type number}}
)
in
Table.Join(
    Etapa_Anterior,
    {"Equipamento superior"},
    addCount,
    {"Equipamento superior"},
    JoinKind.Inner
)


Ou se quiser visualizar somente as linhas duplicadas pode utilizar a opção "Manter Duplicados" em Manter Linhas o Power Query vai filtrar somente as linhas duplicadas.



Se esse passo a passo foi útil para você curta e nos diga como podemos ajudar em outras situações. Compartilhe com um amigo que também esteja precisando de uma ajudinha!💙😍