将逗号分隔的单元格拆分为多行,保持原始行不变?

Posted

技术标签:

【中文标题】将逗号分隔的单元格拆分为多行,保持原始行不变?【英文标题】:Split comma delimited cell into multiple rows, keeping Original Rows as it is? 【发布时间】:2021-12-25 14:35:39 【问题描述】:

我已尝试使用 Excel Power Query 选项将逗号分隔值拆分为行。它运作良好。 但是我想保持原来的行不变

因为 Power Query 删除原始行并生成新行。我想保留原始行并在其下方生成新行。通过逗号分隔符。 我们怎样才能做到这一点?

预期:

I have Data Rows like
1 - name - A,B
2 - name - A,B

It should Convert Like This.
1 - name - A,B
1 - name - A
1 - name - B
2 - name - A,B
2 - name - A
2 - name - B

【问题讨论】:

复制原件,然后拆分。 创建一个原始表格并加载它并将其拆分到不同的工作表中?或者复制电源查询中的列,拆分新列? 【参考方案1】:

使用 2 个导入。

Power Query 传递给 Excel 的是模型,它可以包含多个表或进程。

导入要拆分的数据。执行您的Split by Delimiter into Rows。这将为您提供一个表格,其中包含您的分隔值 - Table After Split

再次将您的数据导入为Table Original

Table After Split 附加到Table After Split 以生成Table Combined

删除 Table OriginalTable After Split,因为它们不再需要并且正在浪费内存。

现在您的模型中剩下的就是您的组合表了。

【讨论】:

在“拆分后”之后没有得到确切的步骤我试图追加,但它只是将原始行粘贴到拆分的行上。我已经编辑了问题,以显示期望。 “没有得到确切的步骤”是什么意思?你的意思是你不了解这个过程?【参考方案2】:

好的,得到了​​简单的解决方案。

    “使用电源查询”只需按逗号分隔符拆分所有行。我们得到“After Split Rows” 然后将所有原始行粘贴到“After Split Rows”上方 将过滤器添加到数字/ID 行并使用“Sort smallest to largest” 并完成。

我们得到预期的结果,原始行和拆分行在它们下面,如上面的问题所示。

【讨论】:

您不应该引用或使用粘贴操作。电源查询旨在产生可重复的操作,无需人工干预。粘贴是一种特定的手动操作。【参考方案3】:

只需添加一个自定义列,其中包含一个列表,该列表由第 3 列加上第 3 列的拆分和逗号分隔符组成。 然后将该列展开为行

自定义栏目: [Column3] & Text.Split([Column3],",")

原始数据

M 码

let

//change Table name in next line to whatever your real source is named
    Source = Excel.CurrentWorkbook()[Name="Table12"][Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,
                            "Column1", Int64.Type, "Column2", type text, "Column3", type text),

//create the list for the column    
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each [Column3] & Text.Split([Column3],",")),
    
//remove old column 3 and expand the list
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom","Column3"),
    #"Expanded Custom" = Table.ExpandListColumn(#"Removed Columns", "Custom")
in
    #"Expanded Custom"

结果

【讨论】:

以上是关于将逗号分隔的单元格拆分为多行,保持原始行不变?的主要内容,如果未能解决你的问题,请参考以下文章

将分隔的单元格记录拆分为行性能

将多行单元拆分为不同的行

java如何解析excel一个单元格中逗号分隔的数据

用空格(或任何字符)将文本单元格拆分为任意数量的单词,重复单词

将单元格中的多个值拆分为多行 - Oracle SQL

将 hive 查询输出拆分为逗号分隔值