PowerBI: Power Query: Jednání s měnícími se názvy sloupců v důsledku čepy

0

Otázka

Pro zprávu dělám. Mám sloupec datum. Já extrahovat měsíců od tohoto sloupce a pak otočte měsíců.

Tak například bych mohl mít tabulku jako je:

Část# Měsíc Mn
1 1 10
1 2 10
1 3 10
1 4 10
1 5 10
1 6 10

Což, když jsem kontingenční to se stává:

Část# 1 2 3 4 5 6
1 10 10 10 10 10 10

Pak jsem se přejmenovat sloupce, spolu s pár dalšími úkoly, jako je vytváření sloupec maxima. Nicméně, protože údaje jsem vytáhnout je pouze pro 6-ti měsíců stojí za to. Tyto názvy sloupců se změní. V budoucnu to může být:

Část# 4 5 6 7 8 9
1 10 10 10 10 10 10

Takže řádek jako:

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

se chystá vytvořit chybu, když se sloupce jsou 4,5,6,7,8,9. Existuje způsob, jak zvládnout tento problém?

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

Nejlepší odpověď

0

Budete muset ručně kód krok, abyste přejmenovat sloupce po své ose.

Tento M kód vytáhne tabulku jako v příkladu z aktuálního sešitu v aplikaci Excel, pak čepy, jak jste popsal, pak přejmenuje sloupců Část#, 1., 2., 3., 4., 5., a 6. Ano, řekl jsem, že to přejmenuje na Část#, i když to není opravdu změnit název sloupce. Ujistěte se, že zahrnout Část# v seznamu kódované v kroku i přesto, že Části# jméno není opravdu mění, protože je třeba, aby účet pro všechny názvy sloupců extrahována do Tabulky.ColumnNames. Nahradit 1., 2., 3., 4., 5., a 6. s vaše požadované názvy sloupců.

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 prolíná dva seznamy dohromady. Tady se to prolíná Část# z původní názvy sloupců (ty, "Otočil Sloupec" krok stůl), pak Část# ze seznamu kódované do #"Přejmenovány Sloupce, pak další originální název sloupce (1 z první příklad nebo 4 z druhého příkladu), pak od 1. sloupci seznamu kódované do #"Přejmenovány Sloupce, pak další originální název sloupce (2 z prvního příkladu nebo 5 z druhého příkladu), pak 2. ze sloupce seznamu kódované do #"Přejmenován na Sloupy, a tak dále. To nastaví seznam potřebné pro Tabulky.RenameColumns.

2021-11-22 21:03:52
0

Můžete použít TableColumNames získat seznam názvů sloupců, pak můžete proměnit tohoto seznamu. Tak pro příklad, můžete použít něco jako:

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

V jiných jazycích

Tato stránka je v jiných jazycích

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