合并两个文件或两个表

Merge two files or two tables

我有两个 Excel 文件,第一个 table:

Date        Water  Eggs Potato
01/09/15    10     52   642

秒:

Date        Eggs   Potato Water Banana
01/09/15    50     300    15    10

在结果文件中或table我需要:

Date        Water  Eggs Potato Banana
01/09/15    25     102  942    10

你可以看到我已经从第一和第二table求和了。在第一个 table 中,我没有列 Banana,但结果 table 必须插入它的列。

如何做到这一点,是否可以通过任何功能解决问题,或者我是否需要使用 VBA?

对列进行排序,使它们的顺序相同。然后将一个 table 附加到另一个,但只保留一组(完整的)列标签。应用详细 here 的 unpivot 过程。当您到达新的 Table 时,从中创建一个 PivotTable,其中 Column in COLUMN、Row in ROWS 和 Value in VALUES 作为 Sum of.

此解决方案假设如下:

  • 两个表都位于同一工作表中 B6:E8G6:K8 (基于 @Valeriu 的响应) 范围内。范围包括表头,范围可根据用户需要调整(见图1)
  • 解决方案范围位于M6:Q12

所有公式都是FormulaArray

(公式数组按 [Ctrl] + [Shift] + [Enter] 同时)

Date :为了从两个表中提取唯一日期的组合列表,在 M7 中输入此 FormulaArray 然后复制到最后一条记录

=IFERROR( INDEX( $B:$B, MATCH( 0, COUNTIF( M:M7, $B:$B ), 0 ) * 1 ),
IFERROR( INDEX( $G:$G, MATCH( 0, COUNTIF( M:M7, $G:$G ), 0 ) * 1 ), "" ))

然后要获取每种类型的总计,请在单元格 N7 中输入此 FormulaArray 然后复制到最后一条记录,然后复制到 O7:Q7

=IF( EXACT( $M7, "" ), "",
IFERROR( SUMIF( $B:$B, $M7, INDEX( $C:$E, 0, MATCH( N, $C:$E, 0 ))), 0 )
+ IFERROR( SUMIF( $G:$G, $M7, INDEX( $H:$K, 0, MATCH( N, $H:$K, 0 ))), 0 ))