PowerBI: Power Query: Trattare con la modifica di nomi di colonna a causa di perni

0

Domanda

Per una relazione che sto facendo. Ho una colonna di date. Ho estratto i mesi da quella colonna e quindi ruotare il mesi.

Così, per esempio, potrei avere una tabella come:

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

Che quando ho pivot diventa:

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

Ho poi rinominare le colonne insieme a fare un paio di altre operazioni, come la creazione di una colonna di valori massimi. Tuttavia, poiché i dati che mi tira è solo per 6 mesi la pena. Questi i nomi di colonne cambierà. In futuro potrebbe essere:

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

Così una linea di questo tipo:

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

sta per creare un messaggio di errore quando le colonne sono 4,5,6,7,8,9. C'è un modo per risolvere questo problema?

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

Migliore risposta

0

Devi manualmente il codice di un passo per rinominare le colonne dopo pivot.

Questo codice M tira una tabella simile a quello nel tuo esempio dall'attuale cartella di lavoro in Excel, quindi perni come si descrivono, quindi rinomina le colonne per Parte#, 1°, 2°, 3°, 4°, 5 ° e 6°. Sì, ho detto rinomina in Parte#, anche se non realmente cambiare il nome di colonna. Essere sicuri di includere Parte# nella lista codificata nel passaggio, anche se la Parte# nome non è realmente cambiando, in quanto è necessario tener conto di tutti i nomi di colonna estratta da Tavolo.ColumnNames. Sostituire la 1°, 2°, 3°, 4°, 5 ° e 6 ° con il tuo desiderato nomi di colonna.

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 intreccia due liste insieme. Qui, si intreccia Parte# originale i nomi di colonna (quelli del "Pivot Colonna" passo della tabella), quindi Parte# dall'elenco codificato in #"Rinominato Colonne, l'originale successivo nome di colonna (1, dal tuo primo esempio o 4 dal tuo secondo esempio), quindi dal 1 ° colonna elenco codificato in #"Rinominato Colonne, l'originale successivo nome della colonna (2 dal tuo primo esempio o 5 dal tuo secondo esempio), 2 ° poi dalla colonna elenco codificato in #"Rinominato Colonne, e così via. Questo consente di impostare l'elenco necessari per la Tabella.RenameColumns.

2021-11-22 21:03:52
0

È possibile utilizzare TableColumNames per ottenere un elenco di nomi di colonna, quindi è in grado di trasformare tale elenco. Quindi per esempio, si potrebbe usare qualcosa come:

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

In altre lingue

Questa pagina è in altre lingue

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