Agrupar ou resumir linhas

No Power Query, é possível agrupar valores de diversas linhas em um único valor. Basta agrupar as linhas de acordo com os valores em uma ou mais colunas. Existem dois tipos de operações de agrupamento para escolher:

  • Agrupamentos de colunas.

  • Agrupamentos de linha.

Neste tutorial, a tabela de exemplo a seguir será usada.

Exemplo de tabela inicial.

Tabela com colunas que mostram Ano (2020), País (EUA, Panamá ou Canadá), Produto (Camisa ou Shorts), Canal de vendas (Online ou Revendedor) e Unidades (vários valores de 55 a 7.500)

Onde encontrar o botão "Agrupar por"

O botão Agrupar por pode ser encontrado em três locais:

  • Na guia Página Inicial, no grupo Transformar.

    Agrupar por na guia Início.

  • Na guia Transformar, no grupo Tabela.

    Agrupar por na guia Transformar.

  • No menu de atalho, quando você clica com o botão direito do mouse para selecionar colunas.

    Agrupar por no menu de atalho.

Usar uma função de agregação para agrupar uma ou mais colunas

Neste exemplo, a meta é resumir o total de unidades vendidas nos níveis de país e canal de vendas. Para realizar a operação "Agrupar por", use as colunas País e Canal de vendas.

  1. Selecione Agrupar por na guia Página Inicial.
  2. Escolha a opção Avançado para selecionar várias colunas para agrupar.
  3. Selecione a coluna País.
  4. Clique em Adicionar agrupamento.
  5. Selecione a coluna Canal de vendas.
  6. Em Nome da nova coluna, digite Total de unidades; em Operação, selecione Soma; e em Coluna, selecione Unidades.
  7. Selecione OK

Caixa de diálogo Agrupar por com colunas agregadas.

Essa operação gera a tabela a seguir.

Tabela de saída de exemplo com as colunas País, Canal de Vendas e Total de unidades.

Operações disponíveis

Com o recurso Agrupar por, é possível categorizar as operações disponíveis de duas maneiras:

  • Operação no nível da linha
  • Operação no nível da coluna

Veja na tabela a seguir uma descrição dessas operações.

Nome de operação Categoria Descrição
Sum Operação de coluna Soma todos os valores de uma coluna
Média Operação de coluna Calcula o valor médio de uma coluna
Median Operação de coluna Calcula a mediana de uma coluna
Min Operação de coluna Calcula o valor mínimo de uma coluna
Max Operação de coluna Calcula o valor máximo de uma coluna
Percentil Operação de coluna Calcula o percentil usando um valor de entrada de 0 a 100, de uma coluna
Contar valores distintos Operação de coluna Calcula o número de valores distintos em uma coluna
Contar linhas Operação de linha Calcula o número total de linhas de um determinado grupo
Contar linhas distintas Operação de linha Calcula o número de linhas distintas de um determinado grupo
Todas as linhas Operação de linha Gera todas as linhas agrupadas em um valor de tabela sem agregações

Observação

As operações Contar valores distintos e Percentil estão disponíveis apenas no Power Query Online.

Realizar uma operação para agrupar por uma ou mais colunas

A partir do exemplo original, neste exemplo, você criará uma coluna que contém o total de unidades e duas outras colunas que fornecem o nome e as unidades vendidas para o produto de melhor desempenho, resumidas no nível do país e do canal de vendas.

Exemplo de tabela de saída com operações.

  1. Use estas colunas em Agrupar por:

    • País/região
    • Canal de vendas
  2. Crie duas novas colunas seguindo estas etapas:

    1. Agregue a coluna Unidades com a operação Soma. Dê o nome Total de unidades para a coluna.
    2. Inclua uma nova coluna Produtos com a operação Todas as linhas.

    Caixa de diálogo Agrupar por com uma coluna não agregada.

Após a conclusão da operação, veja que a coluna Produtos apresenta valores [Tabela] dentro de cada célula. Cada valor [Tabela] contém todas as linhas agrupadas pelas colunas País e Canal de vendas da tabela original. É possível selecionar o espaço em branco dentro da célula para ver uma pré-visualização do conteúdo da tabela na parte inferior da caixa de diálogo.

Painel de visualização de detalhes da tabela.

Observação

O painel de pré-visualização de detalhes pode não mostrar todas as linhas usadas na operação group-by. Selecione o valor [Tabela] para ver todas as linhas pertencentes à operação group-by correspondente.

Em seguida, é necessário extrair a linha com o valor mais alto na coluna Unidades das tabelas dentro da nova coluna Produtos. Depois, dê o nome Produto de melhor desempenho para a nova coluna.

Extrair informações sobre o produto de melhor desempenho

Na nova coluna Produtos com os valores de [Tabela], crie uma coluna personalizada na guia Adicionar coluna na faixa de opções e selecione Coluna personalizada no grupo Geral.

Adicione uma coluna personalizada.

Dê o nome Produto de melhor desempenho à nova coluna. Insira a fórmula Table.Max([Products], "Units" ) em Fórmula de coluna personalizada.

Fórmula de coluna personalizada com Table.Max.

O resultado dessa fórmula cria uma coluna com valores [Registro], que são essencialmente uma tabela com apenas uma linha. Esses registros contêm a linha com o valor máximo da coluna Unidades de cada valor [Tabela] na coluna Produtos.

Resultado da fórmula de coluna personalizada com Table.Max.

Com esta nova coluna Produto de melhor desempenho que contém valores [Registro], você pode selecionar o ícone de expansão expandir., selecionar os campos Produto e Unidades e então selecionar OK.

Expanda a operação para obter o valor do registro na coluna Produto com o melhor desempenho.

Depois de remover a coluna Produtos e definir o tipo de dados para ambas as colunas recém-expandidas, o resultado será semelhante à imagem a seguir.

Tabela final com todas as transformações.

Agrupamento difuso

Observação

O recurso está disponível apenas no Power Query Online.

Para demonstrar como fazer um "agrupamento difuso", veja o exemplo de tabela mostrado na imagem a seguir.

Tabela com nove linhas de verbetes que contêm várias grafias e capitalizações do nome Miguel e William.

O objetivo do agrupamento difuso é realizar uma operação group-by que usa um algoritmo de correspondência aproximado para cadeias de caracteres de texto. O Power Query usa o algoritmo de similaridade Jaccard para medir a semelhança entre pares de instâncias. Em seguida, aplica o clustering hierárquico aglomerativo para agrupar instâncias. Veja na imagem a seguir o resultado esperado, em que a tabela é agrupada pela coluna Pessoa.

Tabela mostrando entradas para Pessoa como

Para fazer o agrupamento difuso, siga as mesmas etapas descritas anteriormente neste artigo. A única diferença é que, desta vez, na caixa de diálogo Agrupar por, marque a caixa de seleção Usar agrupamento difuso.

Caixa de seleção Agrupamento difuso na caixa de diálogo Agrupar por.

Em cada grupo de linhas, o Power Query escolhe a instância mais frequente como "canônica". Vale lembrar que se várias instâncias ocorrerem na mesma frequência, o Power Query escolherá a primeira. Depois de clicar em OK na caixa de diálogo Agrupar por, você receberá o resultado esperado.

Exemplo de tabela final com agrupamento difuso sem tabela de transformação.

No entanto, você tem mais controle sobre a operação de agrupamento difuso com a expansão das Opções de agrupamento difuso.

Opções de agrupamento difuso.

Confira as opções disponíveis para agrupamento difuso:

  • Limite de similaridade (opcional): indica a semelhança que dois valores precisam ter para serem agrupados. A configuração mínima de zero fará com que todos os valores sejam agrupados. A configuração máxima de 1 permitirá que apenas os valores exatamente iguais sejam agrupados. O padrão é 0,8.
  • Ignorar maiúsculas e minúsculas: maiúsculas e minúsculas serão ignoradas na comparação entre cadeias de caracteres de texto. Por padrão, essa opção é ativada.
  • Agrupar combinando partes de texto: o algoritmo tentará combinar partes de texto (como Micro e soft em Microsoft) com valores de grupo.
  • Mostrar pontuações de similaridade: mostra as pontuações de similaridade entre os valores de entrada e os valores representantes calculados após o agrupamento difuso. Exige a inclusão de uma operação como Todas as linhas para mostrar essas informações em um nível linha por linha.
  • Tabela de transformação (opcional): é possível selecionar uma tabela de transformação que mapeia valores (como MSFT para Microsoft) para agrupá-los.

Nesse exemplo, a tabela de transformação é usada para demonstrar como mapear os valores e tem duas colunas:

  • De: a cadeia de caracteres de texto a ser pesquisada na tabela.
  • Para: a cadeia de caracteres de texto a ser usada para substituir a cadeia de caracteres de texto na coluna De.

Veja na imagem a seguir a tabela de transformação usada no exemplo.

Tabela mostrando desde os valores de mike e William, e até os valores de Miguel e Bill.

Importante

É importante que a tabela de transformação tenha as mesmas colunas e os mesmos nomes de colunas mostrados acima ("De" e "Para"). Caso contrário, o Power Query não as reconhecerá.

Volte à caixa de diálogo Agrupar por, expanda Opções de agrupamento difuso, altere a operação de Linhas de contagem para Todas as linhas, marque a opção Mostrar pontuações de similaridade e selecione a Tabela de transformação no menu suspenso.

Menu suspenso de tabela de transformação de exemplo de agrupamento difuso.

Depois de selecionar a tabela de transformação, selecione OK. O resultado dessa operação fornece as seguintes informações:

Exemplo de tabela final com agrupamento difuso com a tabela de transformação.

Neste exemplo, a opção Ignorar maiúsculas e minúsculas está marcada; portanto, os valores na coluna De da Tabela de transformação são usados para buscar a cadeia de caracteres de texto sem considerar maiúsculas e minúsculas. Essa operação de transformação ocorre primeiro e, em seguida, a operação de agrupamento difuso é realizada.

A pontuação de similaridade também é mostrada no valor da tabela ao lado da coluna "Pessoa", o que reflete exatamente como os valores foram agrupados e suas respectivas pontuações de similaridade. Você pode expandir essa coluna, se necessário, ou usar os valores das novas colunas Frequência para outros tipos de transformações.

Observação

Ao agrupar por várias colunas, a tabela de transformação realizará a operação de substituição em todas as colunas se a substituição do valor aumentar a pontuação de similaridade.

Confira também

Adicionar uma coluna personalizada
Remover duplicatas