有啥方法可以在 Power Query 中将实际列名作为变量引用

Posted

技术标签:

【中文标题】有啥方法可以在 Power Query 中将实际列名作为变量引用【英文标题】:Is there any way how to refer actual column name as variable in Power Query有什么方法可以在 Power Query 中将实际列名作为变量引用 【发布时间】:2021-12-08 11:08:15 【问题描述】:

我是 Power Query 的新手,我想请教更有经验的人。

我正在尝试解决 Text.Combine 的问题,我想将特定列中的值和实际单元格的列名组合在一起。

你有什么想法吗?

我的想法是类似这样的公式:

=Text.Combine([kod], Column.Name,";")

非常感谢您的回答。

托马斯

编辑 8.12.2021:

@horseyride

我实际上尝试使用以下格式的数据自动填充列,其中第一部分将是来自实际行和实际列名的值:

例如:

8M0183:F01A0101.B 在第一行第二列,

8M0182:F01A0102.A 在第二行第一列

下面提到的表格示例。

非常感谢您的所有回答。

【问题讨论】:

【参考方案1】:

看看这是否适合你。对于未命名为 KOD 的每一列,它将 KOD 列与列名组合到每个空单元格中

它会找到所有未命名为 KOD 的列。它将这些转换为文本。它用占位符替换所有空值,这里是“xxx”。我们将所有内容都集中到三列。然后,如果单元格内容等于占位符,我们将列标题和单元格内容合并。旋转以恢复原始格式

let Source = Excel.CurrentWorkbook()[Name="Table1"][Content],
ColumnList=List.Difference(Table.ColumnNames(Source),"KOD"),
ConvertToText=  Table.TransformColumnTypes (Source,List.Transform(ColumnList, each _ , type text)),
ReplaceNullsWithPlaceholder = Table.ReplaceValue(ConvertToText,null,"xxx",Replacer.ReplaceValue,ColumnList),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(ReplaceNullsWithPlaceholder, "KOD", "Attribute", "Value"),
CombineColumnAndRow = Table.AddColumn(#"Unpivoted Other Columns", "Value2", each if [Value]="xxx" then [Attribute]&":"&[KOD] else [Value]),
#"Removed Columns" = Table.RemoveColumns(CombineColumnAndRow,"Value"),
#"Pivoted Column1" = Table.Pivot(#"Removed Columns", List.Distinct(#"Removed Columns"[Attribute]), "Attribute", "Value2")
in #"Pivoted Column1"

【讨论】:

我已经用更多细节更新了主要问题。你能看看吗?非常感谢。 为你重做答案 非常感谢!我真的很感激!

以上是关于有啥方法可以在 Power Query 中将实际列名作为变量引用的主要内容,如果未能解决你的问题,请参考以下文章

Power Query - 用零替换负数

Power BI:如何在 Power Query 编辑器中将 Python 与多个表一起使用?

Power Query 中是不是有一种方法可以根据基于文本值重置的两列计算运行总计?

Power-BI:在数据区添加列或在 Power-Query 中添加列

power query展开表时动态获取要展开的列

DAX 和 Power Query(或 M)有啥区别?