合并两个文件或两个表
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:E8
和 G6: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 ))
我有两个 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:E8
和G6: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 ))