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.
Vendedor | Linha | Matriz | Filial 1 | Filial 2 |
Jose | Produto | 1000 | 1587 | 2825 |
Jose | Serviço | 260 | 380 | 890 |
Joaquim | Produto | 1196 | 1370 | 2100 |
Joaquim | Serviço | 450 | 670 | 766 |
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:
Vendedor | Linha | Loja | Valor |
Jose | Produto | Matriz | 1000 |
Jose | Produto | Filial 1 | 1587 |
Jose | Produto | Filial 2 | 2825 |
Jose | Serviço | Matriz | 260 |
Jose | Serviço | Filial 1 | 380 |
Jose | Serviço | Filial 2 | 890 |
Joaquim | Produto | Matriz | 1196 |
Joaquim | Produto | Filial 1 | 1370 |
Joaquim | Produto | Filial 2 | 2100 |
Joaquim | Serviço | Matriz | 450 |
Joaquim | Serviço | Filial 1 | 670 |
Joaquim | Serviço | Filial 2 | 766 |
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 😉.
Deixe um comentário