将逗号分隔的单元格拆分为多行,保持原始行不变?
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 Original
和 Table 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"
结果
【讨论】:
以上是关于将逗号分隔的单元格拆分为多行,保持原始行不变?的主要内容,如果未能解决你的问题,请参考以下文章