再见Sumif+Indirect,全自动多表求和函数DbSum来了!

遗忘美丽 2024-06-03 10:31:59

多表条件求和,以前都使用SUMIF+INDIRECT函数公式,如下图所示:

这个公式很复杂,同时还有两个缺陷:

1、表名必须要有规律的数字,如1,2,3,4....

2、每个表格的列顺序要完全一致。今天兰色介绍的这个函数则可以完美兼容这两种情况,无论表格有多少,无法表格的格式差别有多大,都可以按各个表的标题行自动求和。【例】如下图所示,有A,B,C.....N个表格(行顺序、行数、列顺序、列数均不同),需要把这N个表格数据汇总到一个表中。

这样的问题,之前很多高手都以为除了PQ和VBA,用公式基本上不可能完成。小编偏不信邪,经过4个小时的努力,竟然利用新函数写出来了格式不同的任意多表的求和公式,而且用LAMBDA函数封装成了一个DBSUM函数。语法: =DBSUM(汇总的列标题,汇总的项, 多表区域)本例公式:

=DBSUM(C1,B2,'A:C'!B1:J13)公式设置演示:C2的公式是对所有表('A:C'!B1:J13)的张三(B2)的基本工资(C1)进行求和

最后加上绝对引用后就可以复制后表中所有黄色区域,多表求和结果也出来了。

功能够不够强大,使用是不是很简单?嘿嘿,我猜你也想马上试试这个函数,小编和你说怎么才能有这样的函数(不过你的版本要是OFFICE365或WPS表格哦)

公式 - 名称管理器 - 新建 - 名称输入DBSUM,引用位置粘贴以下公式

=LAMBDA(行标签,列标签,多表区域,LET(x,VSTACK(多表区域),SUM(TOCOL(TOCOL(x,,1)*(SCAN("",TOCOL(x,,1),LAMBDA(A,B,IF(ISTEXT(B),B,A)))=行标签)*(TOCOL(IF(x,INDEX(x,,1),0),,1)=列标签),2))))

完工,以后你就可以在这个表中使用DBSUM函数了。

估计大家会有两个疑问

1、在其他表中可以用这个函数吗?

需要如上定义名称操作,就可以。

2、发给别人还可以用吗?

需要他的版本为WPS表格或OFFICE365。如果他没有,公式不能更新结果。

0 阅读:22

遗忘美丽

简介:自由自在