分组依据 - Excel Power Query 将多行合并为一行
Group by - Excel Power Query multiple rows into one
我将数据加载到 Power Query - 每个员工都有多行,它看起来像这样:
empNum 原因 1 原因 2 原因 3
3453 1 null null
3453 空 1 空
3453 null null 1
如何将数据转换成这样?
empNum 原因 1 原因 2 原因 3
3453 1 1 1
- 编辑
你也可以这样尝试,所以,步骤如下:
• Select 源的任意单元格,
• 来自 数据选项卡 --> 单击来自 Table/Range(在获取和转换组下)
• Select 第一列 即 EmpNum
并右键单击 Unpivot Other Columns
,
• 从主页选项卡 --> 在变换组下 --> 单击Group By
、
• GroupBy EmpNum --> 新列名称 -> Group
--> 操作 --> All Rows
--> 按确定
• 从添加自定义选项卡 --> 在常规组下--> 单击 --> Custom Column
• 新列名称 --> Reason
• 自定义列公式 -->
`Table.Column([Group],"Value")`
• 按确定
• 然后通过按 下拉菜单并单击提取值从原因列中提取值
• Select 分隔符 作为您的选择 ( I took comma
)
• 提取后转到 主页选项卡 --> Select Split Column by
,
• By Delimiter -> Delimiter is Comma
should be at Each Occurence of the delimiter
and press Ok (Also Note in Advanced Options By Default it is Split into Columns
)
• 删除不需要的列,然后从 主页选项卡 按 Close & Load Drop down
,从 导入数据 选择 Existing sheet
或 New Sheet
然后按确定
let
Source = Excel.CurrentWorkbook(){[Name="Table13"]}[Content],
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"EmpNum"}, "Attribute", "Value"),
#"Grouped Rows" = Table.Group(#"Unpivoted Other Columns", {"EmpNum"}, {{"Group", each _, type table [EmpNum=number, Attribute=text, Value=number]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Reason", each Table.Column([Group],"Value")),
#"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Reason", each Text.Combine(List.Transform(_, Text.From), ","), type text}),
#"Split Column by Delimiter" = Table.SplitColumn(#"Extracted Values", "Reason", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Reason.1", "Reason.2", "Reason.3"}),
#"Removed Columns" = Table.RemoveColumns(#"Split Column by Delimiter",{"Group"})
in
#"Removed Columns"
在powerquery中你可以试试
单击 select 第一列
右击 ... 逆透视其他列
单击 select 属性列,转换 ... 透视列,使用值作为值列,高级选项,不聚合
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"empNum"}, "Attribute", "Value"),
#"Pivoted Column" = Table.Pivot(#"Unpivoted Other Columns", List.Distinct(#"Unpivoted Other Columns"[Attribute]), "Attribute", "Value")
in #"Pivoted Column"
我将数据加载到 Power Query - 每个员工都有多行,它看起来像这样:
empNum 原因 1 原因 2 原因 3
3453 1 null null
3453 空 1 空
3453 null null 1
如何将数据转换成这样?
empNum 原因 1 原因 2 原因 3
3453 1 1 1
- 编辑
你也可以这样尝试,所以,步骤如下:
• Select 源的任意单元格,
• 来自 数据选项卡 --> 单击来自 Table/Range(在获取和转换组下)
• Select 第一列 即 EmpNum
并右键单击 Unpivot Other Columns
,
• 从主页选项卡 --> 在变换组下 --> 单击Group By
、
• GroupBy EmpNum --> 新列名称 -> Group
--> 操作 --> All Rows
--> 按确定
• 从添加自定义选项卡 --> 在常规组下--> 单击 --> Custom Column
• 新列名称 --> Reason
• 自定义列公式 -->
`Table.Column([Group],"Value")`
• 按确定
• 然后通过按 下拉菜单并单击提取值从原因列中提取值
• Select 分隔符 作为您的选择 ( I took comma
)
• 提取后转到 主页选项卡 --> Select Split Column by
,
• By Delimiter -> Delimiter is Comma
should be at Each Occurence of the delimiter
and press Ok (Also Note in Advanced Options By Default it is Split into Columns
)
• 删除不需要的列,然后从 主页选项卡 按 Close & Load Drop down
,从 导入数据 选择 Existing sheet
或 New Sheet
然后按确定
let
Source = Excel.CurrentWorkbook(){[Name="Table13"]}[Content],
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"EmpNum"}, "Attribute", "Value"),
#"Grouped Rows" = Table.Group(#"Unpivoted Other Columns", {"EmpNum"}, {{"Group", each _, type table [EmpNum=number, Attribute=text, Value=number]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Reason", each Table.Column([Group],"Value")),
#"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Reason", each Text.Combine(List.Transform(_, Text.From), ","), type text}),
#"Split Column by Delimiter" = Table.SplitColumn(#"Extracted Values", "Reason", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Reason.1", "Reason.2", "Reason.3"}),
#"Removed Columns" = Table.RemoveColumns(#"Split Column by Delimiter",{"Group"})
in
#"Removed Columns"
在powerquery中你可以试试
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"empNum"}, "Attribute", "Value"),
#"Pivoted Column" = Table.Pivot(#"Unpivoted Other Columns", List.Distinct(#"Unpivoted Other Columns"[Attribute]), "Attribute", "Value")
in #"Pivoted Column"