展开两个 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 列,每个列都有多个对应的值的主要内容,如果未能解决你的问题,请参考以下文章

3.数据表中的名词解释

Excel - 删除两列之间的所有一对一行

给定一个包含多个列的手动表格,每个列都使用不同的渲染器,如何在数据更新时更改单个单元格的背景颜色?

excel中两列都有重复值,怎样筛选出两列唯一值?

如何比较重复的列,每个列都有一个数字范围,如果它们的数字范围相互重叠,则返回错误?

2.1 关系数据结构