PowerBI:Power Query:处理因数据透视而更改的列名

Posted

技术标签:

【中文标题】PowerBI:Power Query:处理因数据透视而更改的列名【英文标题】:PowerBI: Power Query: Dealing with changing column names due to pivots 【发布时间】:2021-11-22 19:02:59 【问题描述】:

对于我正在制作的报告。我有一个日期列。我从该列中提取月份,然后旋转月份。

例如,我可能有一个类似的表格:

Part# Month Qty
1 1 10
1 2 10
1 3 10
1 4 10
1 5 10
1 6 10

当我旋转它时它变成:

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

然后我重命名这些列并执行一些其他任务,例如创建最大值列。 但是,由于我提取的数据只有 6 个月的价值。这些列的名称将会改变。 未来可能是:

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

这样一行:

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

当列是 4,5,6,7,8,9 时会产生错误。有没有办法处理这个问题?

【问题讨论】:

【参考方案1】:

您需要手动编写一个步骤来重命名数据透视后的列。

此 M 代码从 Excel 中的当前工作簿中提取与示例中的表类似的表,然后按照您的描述进行透视,然后将列重命名为 Part#、1st、2nd、3rd、4th、5th 和 6th。是的,我说它重命名为 Part#,尽管它并没有真正改变该列名。确保在步骤中编码的列表中包含 Part#,即使 Part# 名称并没有真正改变,因为您需要考虑 Table.ColumnNames 提取的所有列名。将 1st、2nd、3rd、4th、5th 和 6th 替换为您的所需的列名。

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 将两个列表交织在一起。在这里,它交织来自原始列名的 Part#(那些在“Pivoted Column”步骤的表中),然后从编码为 #"Renamed Columns 的列表中的 Part#,然后是下一个原始列名(来自第一个示例的 1 或 4来自您的第二个示例),然后是编码为 #"Renamed Columns 的列列表中的第一个,然后是下一个原始列名(第一个示例中的 2 个或第二个示例中的 5 个),然后编码为 #"Renamed 的列列表中的第 2 个列等等。这设置了 Table.RenameColumns 所需的列表。

【讨论】:

【参考方案2】:

您可以使用TableColumNames 获取列名列表,然后您可以转换该列表。因此,对于您的示例,您可以使用以下内容:

= Table.ReplaceValue(#"Pivoted Column",null,0,Replacer.ReplaceValue,List.Skip(Table.ColumnNames(#"Pivoted Column"),1))

【讨论】:

以上是关于PowerBI:Power Query:处理因数据透视而更改的列名的主要内容,如果未能解决你的问题,请参考以下文章

谈一谈你在powerbi或者powerquery中学到的技能?以及怎么解决实际问题?

Powerbi复制 VS 引用:Power Query中对数据源的处理

Power BI:多个表作为 Power Query 中 Python 的输出

powerbi和powerquery哪个好学

PowerBI 核心组件介绍(Power Query&Power Pivot & Power View& Power BI)

Powerbi Power Query Editor 将字符串转换为数字时出错