Transformando colunas em linhas no Power Query com Table.UnpivotOtherColumns

A função Table.UnpivotOtherColumns no Power Query é utilizada para transformar e reorganizar dados em uma tabela. Usamos ela para “desdobrar” ou “despivotar” colunas em linhas, especialmente quando algumas colunas precisam ser mantidas inalteradas.

Aqui está uma explicação simples do seu funcionamento:

Avaliando a tabela a seguir nós queremos passa as colunas Matriz e Filiais para o nível de linha.

VendedorLinhaMatrizFilial 1Filial 2
JoseProduto100015872825
JoseServiço260380890
JoaquimProduto119613702100
JoaquimServiço450670766

Para isso usaremos então o seguinte código em M language que é a linguagem padrão do Power Query seja ele no Power BI ou no Excel.

let
    Fonte = /*Aqui criamos nossa tabela modelo*/
    #table( type table [ #"Vendedor" = text
                       , #"Linha" = text
                       , #"Matriz" = Decimal.Type
                       , #"Filial 1" = Decimal.Type
                       , #"Filial 2" = Decimal.Type ]
          , { {"Jose","Produto",1000,1587,2825}
            , {"Jose","Serviço",260,380,890}
            , {"Joaquim","Produto",1196,1370,2100}
            , {"Joaquim","Serviço",450,670,766} } ),

    unPivot = /*Aqui transformamos as colunas Matriz e Filiais em Linhas*/
    Table.UnpivotOtherColumns(Fonte,{"Vendedor","Linha"},"Loja","Valor")

in
    unPivot

Nosso resultado então será conforme a tabela seguinte:

VendedorLinhaLojaValor
JoseProdutoMatriz1000
JoseProdutoFilial 11587
JoseProdutoFilial 22825
JoseServiçoMatriz260
JoseServiçoFilial 1380
JoseServiçoFilial 2890
JoaquimProdutoMatriz1196
JoaquimProdutoFilial 11370
JoaquimProdutoFilial 22100
JoaquimServiçoMatriz450
JoaquimServiçoFilial 1670
JoaquimServiçoFilial 2766

Ao aplicarmos a função Table.UnpivotOtherColumns ela “desdobra” as colunas não selecionadas (outras colunas) em linhas, mantendo as colunas selecionadas intactas.

E o resultado conforme vimos as colunas não selecionadas originalmente se tornarão duas novas colunas: uma para os nomes das colunas desdobradas que recebeu o nome de Loja e outra para os valores correspondentes que recebeu o nome de Valor. As colunas selecionadas permanecerão inalteradas.
Isso é útil quando temos dados organizados em colunas precisamos dos dados em nível de linha para análise ou relatórios.

Desejamos que o conteúdo tenha sido útil para o seu aprendizado.
– essa foi mais uma dica do Ornit 😉.


Comentários

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *