Excel:聚合由标题分隔的多个表

时间:2013-05-13 15:10:46

标签: excel excel-vba vlookup lookup-tables vba

我有一个由SAP生成的Excel文件。我需要将其格式从由标题分隔的多个表更改为单个表。这是原始表:

original

我需要它看起来像这样:

alternative

我是excel的新手,所以我不知道怎么做。

我不能手动操作,因为该文件有5000多行。

任何指导?

1 个答案:

答案 0 :(得分:1)

我通常使用通用公式:

=IF(XX="",YY,XX/ZZ)

其中XX是一个单元格,您可以使用它来标识要附加到各个交易的标题,YY是您放置公式的单元格正上方的单元格。 XX是你需要这个值的时候,ZZ是另一个值。您应该在何时应用它。

例如,在这里,您可以使用单元格D5来执行此操作。我会在D列之前插入两列(单元格D5的值现在在单元格F5中),并将此公式放在单元格C5中:

=IF(F5="",C4,B5)

然后我会填写公式。这会将材质ID随处可见,直到最后一行。在这种类型的文件中有两种快速方法:

  • 复制公式,滚动到工作表底部,按住 Shift 并单击列中的最后一个单元格,然后粘贴。
  • 选择包含公式的单元格,滚动到工作表底部,按住 Shift 并执行 Ctrl +, D

在单元格D5中,我会使用公式:

=IF(F5="",D4,F5)

并填写它以获得材料描述。


现在,对于每个单位的大小,您可以在列K的右侧创建一列(现在,列K具有'每单位大小'因为我们之前插入了两列),并将此公式放在单元格中L6:

=IF(K6="",L5,K6)

将其填满以便随处可见。

现在,要完成它,请选择整个工作表并复制/粘贴值(选择性粘贴>粘贴值)以删除公式。删除第1行和第2行,放置过滤器并按字段“公制”等字段排序。转到底部并删除不再需要的行。

作为奖励,如果您需要确保事务的顺序与最初的相同,请在某处插入一个列,将顺序号放入其中;这是列中的第一个单元格1,第二个2,然后是3等,并填充到底部。删除不需要的行时,请确保它在过滤器中,并在完成后按此列排序。

5000多行仍然很好,但是我必须处理10个以上的工作簿,每行约90000行;)