展开两个 Excel 列,每个列都有多个对应的值
Posted
技术标签:
【中文标题】展开两个 Excel 列,每个列都有多个对应的值【英文标题】:Expand two Excel columns, each with multiple corresponding values 【发布时间】:2021-06-16 05:31:03 【问题描述】:这个excel表格怎么转
Country | Initiative | Staff involved | Billing hours |
---|---|---|---|
HK | Data Lake | Amy, Ben, Li | 6,3,8 |
使用 Excel/Python/Power 查询? (不一定是 3 名员工,或多或少)
Country | Initiative | Staff involved | Billing hours |
---|---|---|---|
HK | Data Lake | Amy | 6 |
HK | Data Lake | Ben | 3 |
HK | Data Lake | Li | 8 |
【问题讨论】:
【参考方案1】:使用 Power Query
>您可以按照以下步骤使用 Excel 中的 Power Query 执行此操作。
选择数据并转到数据>获取和转换数据。
选择 From Sheet 选项,确保选中 My table has headers,然后单击 OK。
在 Power Query 中,转到添加列>自定义列并将其用于自定义列公式。
= Text.Split([Staff involved], ",")
-
再次转到添加列>自定义列并将其用于公式。
= Text.Split([Billing Hours], ",")
-
再次使用 Add Column>Custom Column with this formula。
= Table.FromColumns([Custom], [Custom.1])
现在您可以展开最后一个自定义列来获取您想要的数据。
最后删除不需要的列,根据需要重命名其他列,然后转到文件>关闭并加载,将数据返回到 Excel。
M 码
这是按照上述步骤生成的完整 M 代码。
let
Source = Excel.CurrentWorkbook()[Name="Table1"][Content],
#"Added Custom" = Table.AddColumn(Source, "Custom", each Text.Split([Staff involved], ",")),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom.1", each Text.Split([Billing hours], ",")),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "Custom.2", each Table.FromColumns([Custom], [Custom.1])),
#"Expanded Custom.2" = Table.ExpandTableColumn(#"Added Custom2", "Custom.2", "Column1", "Column2", "Custom.2.Column1", "Custom.2.Column2"),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Custom.2","Staff involved", "Billing hours", "Custom", "Custom.1"),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns","Custom.2.Column1", "Staff Involved", "Custom.2.Column2", "Billing Hours")
in
#"Renamed Columns"
【讨论】:
以上是关于展开两个 Excel 列,每个列都有多个对应的值的主要内容,如果未能解决你的问题,请参考以下文章
给定一个包含多个列的手动表格,每个列都使用不同的渲染器,如何在数据更新时更改单个单元格的背景颜色?