将单个单元格的数据拆分为多个记录

将单个单元格的数据拆分为多个记录

我有一张表,Invoice其中有一个字段包含值和日期。每条记录可以有多张发票。如果是这样,发票会以换行符分隔列出在单个细胞内。 一个例子如下所示。

 PO #   PO Date   PO Amt        Invoice
  1     05/19/15   100        100 06/01/15
                              500 07/1/15
                              1000 08/1/15
  2     05/20/15   101        100 06/01/15
                              500 07/1/15
                              1000 08/1/15
  3     05/21/15   102        100 06/01/15
                              500 07/1/15
                              1000 08/1/15

我想拆分列出多张发票的这些记录。我想为每张发票创建新行。新行的其他字段应具有相同的数据。完成此操作后,示例数据应如下所示:

PO #    PO Date   PO Amt     Invoice
1       05/19/15   100     100 06/01/15
1       05/19/15   100     500 07/1/15
1       05/19/15   100     1000 08/1/15
2       05/20/15   101     100 06/01/15
2       05/20/15   101     500 07/1/15
2       05/20/15   101     1000 08/1/15
3       05/21/15   102     100 06/01/15
3       05/21/15   102     500 07/1/15
3       05/21/15   102     1000 08/1/15

手动执行此操作将花费很长时间。如何在 Excel 中以这种方式拆分这些记录?

答案1

我还是想尝试一下 :D

  • A:D是你的数据
  • 我认为E:Z是空的

我们从以下开始:
在此处输入图片描述
现在E2

=SUBSTITUTE(D2,"
",";")

(Alt+Enter 在单元格内换行)
现在我们将其拉到表格末尾。
突出显示列E
- 复制
- 粘贴(仅值)
- 在“数据”选项卡中使用“文本到列”-> 分隔 ->
取消选中除分号之外的所有内容 -> 完成

我们的表格现在应该是这样的:
在此处输入图片描述
现在到了有趣的部分:公式:D
我将从M2(如果需要则调整) 开始

=IFERROR(INDEX($E$2:$I$999,(ROW()-MOD(ROW()-2,5)-2)/5+1,MOD(ROW()-2,5)+1),"")

并根据需要将其拉下...注意:$E$2:$I$999根据需要进行调整...但不要忘记$
现在J2

=IFERROR(INDEX(A$2:A$999,(ROW()-MOD(ROW()-2,5)-2)/5+1),"") (note: NO $ in front of the A!)

将其拖至L2所有 3 列,然后向下拖
在此处输入图片描述

现在魔术来了:选择列M并点击过滤器->取消选中0empty 在此处输入图片描述

现在选择整个列表并复制 - >将其粘贴到另一张表(仅与上次一样的值)

现在复制/粘贴标题,您就完成了:)

相关内容