在查询表中排列数据

时间:2017-04-07 17:38:14

标签: powerquery m

我正试图找出一种简单的方法(使用PowerQuery)来转换它:

enter image description here

进入这个:

![enter image description here

我花了好几天试图找出一种简单的方法来做到这一点。

我尝试过的一切都失败了。

1 个答案:

答案 0 :(得分:2)

您可以在“变换”选项卡上按项目分组使用分组依据,并为每个分段列定义聚合(例如,总和)。 然后将创建的代码从List.Sum调整为List.RemoveNulls。 然后使用Table.FromColumns从段列中添加一个包含嵌套表的列。 删除原始段列并展开嵌套表。

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Project", type text}, {"Segment1", type text}, {"Segment2", type text}, {"Segment3", type text}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Project"}, {{"Segment1", each List.RemoveNulls([Segment1]), type text}, {"Segment2", each List.RemoveNulls([Segment2]), type text}, {"Segment3", each List.RemoveNulls([Segment3]), type text}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Tabled", each Table.FromColumns({[Segment1],[Segment2],[Segment3]},{"Segment1","Segment2","Segment3"})),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Segment1", "Segment2", "Segment3"}),
    #"Expanded Tabled" = Table.ExpandTableColumn(#"Removed Columns", "Tabled", {"Segment1", "Segment2", "Segment3"}, {"Segment1", "Segment2", "Segment3"})
in
    #"Expanded Tabled"