如何基于逗号删除将Excel单元格拆分为多行

时间:2017-08-25 21:53:42

标签: excel excel-vba excel-formula excel-2010 vba

我正在使用包含超过19列的半大数据集(50K +行)。我需要完成的是拆分特定列中的一个单元格(在图像示例中其组织)具有由逗号分隔的多个项目,如下所示,并简单地重复整个行并仅保留逗号后的新值。我一直在手动这样做,但当然以这种方式做这件事是荒谬的。

Mock data

我想知道在没有VBA的情况下可以做到这一点但是我愿意尝试VBA解决方案并尝试向我的高层解释它。它包含19列,并非填充其他列中的所有值,但“组织”确实包含每个单元格中的值。

也很高兴加入这个美好的社区,并提前感谢!

2 个答案:

答案 0 :(得分:1)

以下是仅使用公式的可能解决方案。

Image shown here.

单元格M1是分隔符。在这种情况下是一个逗号。

Helper:=SUM(K1,LEN(B1)-LEN(SUBSTITUTE(B1,$N$1,"")))+1

您必须将上述公式再填充一行。

A8:=a1

将此公式填写到右侧。

A9:=LOOKUP(ROW(1:1),$J:$J,A:A)

向右和向下填写此公式。

F9:=MID($M$1&LOOKUP(ROW(A1),$J:$J,F:F)&$M$1,FIND("艹",SUBSTITUTE($M$1&LOOKUP(ROW(A1),$J:$J,F:F)&$M$1,$M$1,"艹",ROW(A2)-LOOKUP(ROW(A1),$J:$J)))+1,FIND("艹",SUBSTITUTE($M$1&LOOKUP(ROW(A1),$J:$J,F:F)&$M$1,$M$1,"艹",ROW(A2)-LOOKUP(ROW(A1),$J:$J)+1))-FIND("艹",SUBSTITUTE($M$1&LOOKUP(ROW(A1),$J:$J,F:F)&$M$1,$M$1,"艹",ROW(A2)-LOOKUP(ROW(A1),$J:$J)))-1)

填写。

错误:

空白单元格将填充0。

答案 1 :(得分:0)

您可以使用Power Query。将Org列移动到最右侧,然后按每个逗号分割,然后选择拆分Org列并单击功能区上的“unpivot”。没有代码,只需点击图标,它就是可重复的。如果源数据发生更改,只需刷新查询即可。

在屏幕截图中,源数据(简化)是蓝色表,Power Query结果是绿色表。

Power Query是Microsoft for Excel 2010和2013的免费插件,并作为Get和Transform内置于Excel 2016中。

enter image description here