繁体   English   中英

如何使用电源查询从自定义列中的另一列获取值

[英]How to get a value from another column in a custom column using power query

在 power bi 表中,我有两列命名:名称和值。 名称有 3 种类型:“直径”、“半径”、“长度”。 现在这些名字是按行排列的,但我想让它们在单独的列中与项目对齐。 所以我想添加一列,比如直径,如果名称列中同一行中的值是“直径”,则 append 将值列的值添加到这个新列。 我该怎么做? 现在我有这样的东西显然不起作用:

= Table.AddColumn(#"Filtered Rows5", "Diameter", each if [name] = "Diamter" then [#"[value].Cell.Data.Element: Text"] else "" )

基本上,我想将表格从

在此处输入图像描述

在此处输入图像描述

在电源查询中

添加列..自定义列...名称直径

= if [Name] = "diameter" then [Value] else null

添加列..自定义列...名称半径

= if [Name] = "radius" then [Value] else null

添加列..自定义列...名称长度

= if [Name] = "length" then [Value] else null

示例代码:

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Added Custom" = Table.AddColumn(Source, "diameter", each if [Name] = "radius" then [Value] else null),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "radius", each if [Name]="radius" then [Value] else null),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "length", each if [Name]="length" then [Value] else null)
in  #"Added Custom2"

替代方法

右键单击并复制名称列
添加列索引列
点击select新建专栏
转换 .. pivot 列并选择 Value 作为值列
求助于索引列并将其删除

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Added Index" = Table.AddIndexColumn(Source, "Index", 0, 1, Int64.Type),
#"Duplicated Column" = Table.DuplicateColumn(#"Added Index", "Name", "Name - Copy"),
#"Pivoted Column" = Table.Pivot(#"Duplicated Column", List.Distinct(#"Duplicated Column"[#"Name - Copy"]), "Name - Copy", "Value", List.Sum),
#"Sorted Rows" = Table.Sort(#"Pivoted Column",{{"Index", Order.Ascending}}),
#"Removed Columns" = Table.RemoveColumns(#"Sorted Rows",{"Index"})
in #"Removed Columns"

好处:适用于转换为列的任意数量的唯一行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM