一般情况下,建议数据都在一个文件(工作簿)里,可以分开sheet(工作表)存放,这样不仅是操作方便,在使用公式以及其他统计工具(例如透视表)都非常容易。但是不可避免的也会遇到一些不在同一文件的情况,这就会带来一些问题,今天着重讨论一下跨文件进行条件求和的问题。
一般我们在进行跨工作簿条件求和时,经常会遇到的是以下两个问题:
1、跨工作簿的区域应该如何写?
2、关闭工作簿后,求和出来的结果变成错误值怎么办?
说到条件求和,首先想到的一定是用SUMIF函数进行统计。
函数语法:
=SUMIF(条件区域,条件,求和区域)
其实跨工作簿的情况下,区域的选取跟在同一个工作簿一样,都是用鼠标选取,而不是手写。有一点必须要记住:两个工作簿必须同时打开。
具体操作参考动画演示:
最终公式为: =SUMIF([跨工作簿统计1.xlsx]Sheet1!$B:$B,A2,[跨工作簿统计1.xlsx]Sheet1!$D:$D)
但是一旦我们将跨工作簿统计1.xlsx关闭,修改统计月份,金额就变成错误值。
在Excel中,并不是所有函数都支持跨工作簿,如SUMIF、COUNTIF函数就不支持,而VLOOKUP、SUMPRODUCT函数就支持。这里可以借助SUMPRODUCT函数实现跨工作簿统计。
函数语法: =SUMPRODUCT((条件区域=条件)*求和区域)
我们重新看一下出错的单元格,公式可能会变成 =SUMIF('C:UserschenxiluDesktop[跨工作簿统计1.xlsx]Sheet1'!$B:$B,A2,'C:UserschenxiluDesktop[跨工作簿统计1.xlsx]Sheet1'!$D:$D)
C:UserschenxiluDesktop 这个是路径,意思就是说这个表格存在我电脑的桌面。
[跨工作簿统计1.xlsx]Sheet1 这个是工作簿名称跟工作表名称。
不要看公式很长,其实拆分开真的没什么,都是很简单的东西。
SUMPRODUCT函数不支持引用整列,这里只要将原来的区域改小,稍作变动就完成了最终的统计。
=SUMPRODUCT(('C:UserschenxiluDesktop[跨工作簿统计1.xlsx]Sheet1'! $B$2:$B$100 =A2)*'C:UserschenxiluDesktop[跨工作簿统计1.xlsx]Sheet1'! $D$2:$D$100 )
这样即使工作簿不打开的情况下,也能正确统计。
一句话总结:可以用SUMPRODUCT函数实现跨工作簿统计,直接打开两个工作簿,用鼠标选取区域,路径是原来的表格关闭后自动生成的。