多表条件求和,以前都使用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。如果他没有,公式不能更新结果。
兰色说
:本例中兰色大量的使用了新版本函数,(
如果你还在用excel老版本,建议安装WPS最新版本
)。这些新函数功能有多强大,毫不夸张的说可以颠覆以前版本大多数公式,并且以前无法完成的新函数也可以。
本周日兰色将在视频号直播间讲解(免费)部分新函数的用法,如 Textsplit、Tocol、Lambda、Scan 等,想听课的同学赶紧点下面 预约 哦
另外,这些新函数的用法兰色也会陆续录成教程更新到函数公式大全教程中,如果你想学习更多函数, 可以购买兰色四合 一大全套教程( 含 图表185集 + 函数144集+透视表50集+技巧大全119集 ) ( 办理年卡可免费学习和Excel课件 )