PowerBI: Power Query: de-a Face cu schimbarea de nume de coloană din cauza pivoti

0

Problema

Pentru un raport pe care îl fac. Am o întâlnire coloana. Am extras luni de la coloană și apoi pivotați luni.

Astfel, de exemplu, am putea avea o masă, cum ar fi:

Parte# Luna Buc
1 1 10
1 2 10
1 3 10
1 4 10
1 5 10
1 6 10

Care, atunci când am pivot devine:

Parte# 1 2 3 4 5 6
1 10 10 10 10 10 10

Apoi am redenumi coloanele împreună cu câteva alte sarcini, cum ar fi crearea de o coloană de maxime. Cu toate acestea, deoarece datele nu trage este doar pentru 6 luni în valoare. Aceste coloane nume se va schimba. În viitor, ar putea fi:

Parte# 4 5 6 7 8 9
1 10 10 10 10 10 10

Deci, o linie de genul:

Table.ReplaceValue(#"Pivoted Column",null,0,Replacer.ReplaceValue,{"1", "2", "3", "4", "5", "6"})

se va crea o eroare atunci când coloanele sunt 4,5,6,7,8,9. Există o modalitate de a rezolva această problemă?

pivot powerbi powerquery
2021-11-22 19:02:59
2

Cel mai bun răspuns

0

Va trebui să manual cod un pas de a redenumi coloanele după pivot.

Asta M cod trage un tabel ca cel din exemplul tau din actualul registru de lucru în Excel, apoi pivotează cum ați descrie, apoi redenumește coloane la o Parte#, 1, 2, 3, 4, 5, și 6. Da, am spus-o redenumește la o Parte#, chiar dacă nu prea schimba numele coloanei. Să fie sigur de a include o Parte# în lista codificate în pas chiar dacă o Parte# nume nu este cu adevărat schimbarea, pentru că ai nevoie de cont pentru toate numele de coloane extras de Masă.ColumnNames. Înlocuiți 1, 2, 3, 4, 5, și 6 cu dvs. de dorit coloana nume.

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(Source, {{"Month", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(Source, {{"Month", type text}}, "en-US")[Month]), "Month", "Qty"),
    #"Renamed Columns" = Table.RenameColumns(#"Pivoted Column", List.Zip({Table.ColumnNames(#"Pivoted Column"),{"Part#", "1st", "2nd", "3rd", "4th", "5th", "6th"}}))
in
    #"Renamed Columns"

List.Zip împletește două liste împreună. Aici, se impleteste Parte# de original nume de coloană (cele din "Înclină Coloana" pas masa), apoi o Parte# din lista codificate în #"Redenumit Coloane, apoi următorul original nume de coloană (1 din primul exemplu sau 4 de pe al doilea exemplu), atunci 1 din coloana lista codificate în #"Redenumit Coloane, apoi următorul original nume de coloană (2 de la primul exemplu sau 5 din al doilea exemplu), apoi al 2-lea din coloana lista codificate în #"Redenumit Coloane, și așa mai departe. Aceasta stabilește lista de necesar pentru Masă.RenameColumns.

2021-11-22 21:03:52
0

Puteți utiliza TableColumNames pentru a obține o listă de nume de coloane, atunci puteți transforma această listă. Deci, de exemplu, ai putea folosi ceva de genul:

= Table.ReplaceValue(#"Pivoted Column",null,0,Replacer.ReplaceValue,List.Skip(Table.ColumnNames(#"Pivoted Column"),1))
2021-11-22 20:52:23

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................