首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为ID转换具有可变位置数的表,从而使位置成为列?

如何为ID转换具有可变位置数的表,从而使位置成为列?
EN

Stack Overflow用户
提问于 2020-01-06 19:25:21
回答 1查看 48关注 0票数 0

我有一个列ID和位置的表。一个ID可以有多个(比如说5)位置。如何将源表转换为目标表?

源表

ID,位置

大道A,走廊

B房,后走廊

B房,前走廊

C房,1楼

C房,2楼

C房,3楼

目标表

ID,Location1,Location2,Location3

大道A走廊,

B房,后走廊,前厅,

C房,1楼,2楼,3楼

我试过转转和转转/不转转,但我无法得到我想要的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-06 21:48:13

假设Table1有两个列ID和位置

选择该表并加载到powerquery Data...From表范围.表有标头

选择/单击ID列,右键单击“组”.基本..。组按:身份证..。新的列名:数据..。操作:所有行..。栏:空白

将每个ID的所有数据聚合到自己列中的表中。

添加Column..Custom列..。

新列名:自定义..。公式:=Table.Column(数据,“位置”)

,它将为每个ID创建一个列表,该ID中只有其中的位置

单击->自定义列顶部的<-箭头,提取值,并使用逗号

将位置的所有唯一值组合在一起,以将它们分开。

最后的代码(您也可以使用高级.粘贴这些代码)

代码语言:javascript
复制
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Grouped Rows" = Table.Group(Source, {"ID"}, {{"Data", each _, type table}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each Table.Column([Data],"Location")),
#"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Custom", each Text.Combine(List.Transform(_, Text.From), ","), type text})
in #"Extracted Values"

上面的好处是更容易理解,并且可以使用接口完成。如果你想变得漂亮,你可以在下面使用.聚合ID和组合位置的一个步骤。使用高级编辑器粘贴

代码语言:javascript
复制
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Grouped Rows" = Table.Group(Source, {"ID"}, {{"Custom", each Text.Combine(List.Transform([Location], Text.From), ","), type text}})
in #"Grouped Rows"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59617811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档