PowerBI: el Poder de la Consulta: Tratar con el cambio de los nombres de columna debido a los pivotes

0

Pregunta

Para un informe que estoy haciendo. Tengo una columna de fecha. Me extraer los meses a partir de esa columna y, a continuación, gire los meses.

Así, por ejemplo, yo podría tener una tabla como:

Parte# Mes Cant.
1 1 10
1 2 10
1 3 10
1 4 10
1 5 10
1 6 10

Que cuando me pivote se convierte en:

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

Me cambie el nombre de las columnas junto con hacer un par de otras tareas como la creación de una columna de máximos. Sin embargo, puesto que los datos me tire es solo para 6 meses de la pena. Estos nombres de las columnas va a cambiar. En el futuro podría ser:

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

Para que una línea como:

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

se va a crear un error cuando las columnas son 4,5,6,7,8,9. Es allí una manera de manejar este problema?

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

Mejor respuesta

0

Deberá manualmente el código de un paso para cambiar el nombre de las columnas después de su punto de pivote.

Este M código tira una tabla como la que en su ejemplo del libro de trabajo en Excel, a continuación, pivotes y como lo describen, a continuación, cambia el nombre de las columnas de la Parte#, 1ª, 2ª, 3ª, 4ª, 5ª y 6ª. Sí, me dijo que se cambia el nombre a la Parte#, aunque la verdad es que no cambio de que el nombre de la columna. Asegúrese de incluir Parte# en la lista codificada en el paso aunque la Parte de# nombre no está realmente cambiando, porque debe tener en cuenta todos los nombres de columna extraída por la Mesa.ColumnNames. Reemplazar 1ª, 2ª, 3ª, 4ª, 5ª y 6ª con su deseado nombres de columna.

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 entrelaza las dos listas. Aquí, se entreteje Parte# de la columna original de los nombres (los de la "Columna Dinamizada" el paso de la mesa), la Parte# de la lista codificada en #"cambiado el nombre de las Columnas, entonces el siguiente original el nombre de la columna (1 en el primer ejemplo o 4 en el segundo ejemplo), entonces 1 de la lista de columnas codificado en #"cambiado el nombre de las Columnas, entonces el siguiente original el nombre de la columna (2 de su primer ejemplo o 5 a partir de su segundo ejemplo), luego de 2º de la columna de la lista codificada en #"cambiado el nombre de las Columnas, y así sucesivamente. Esto establece la lista necesarios para la Tabla.RenameColumns.

2021-11-22 21:03:52
0

Puede utilizar TableColumNames para obtener una lista de nombres de columna, entonces usted puede transformar esa lista. Así, por ejemplo, usted podría usar algo como:

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

En otros idiomas

Esta página está en otros idiomas

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