大家知道,Sumif是单条件求和函数,我们一般用于单表求和,如果涉及多表呢?例如30个表,不可能一直是sumif() sumif() sumif() sumif() sumif()...... 那样太累了! 单靠Sumif,势单力薄,我们请来Indirect函数帮忙。 看例子,有1-5日3个列相同,行数不同的明细表,要求汇总出每个省份的销量总和。 分表:
思路分析: 如果是单表,只需要Sumif函数直接求和即可: =SUMIF('1日'!B2:B9,总计!A2,'1日'!C2:C9) 但,对于多个表,可借助INDIRECT函数生成对多个表区域的引用,即是: INDIRECT(ROW($1:$5)&'日!B:B') -- 引用每个表的B列数据区域 以及 INDIRECT(ROW($1:$5)&'日!C:C') -- 引用每个表的C列数据区域 最后,用Sumif函数组合起来,即是: =SUMIF(INDIRECT(ROW($1:$5)&'日!B:B'),A2,INDIRECT(ROW($1:$5)&'日!C:C')) 需要注意,上面公式返回的是每个表的求和结果,是一组数,数组求和,当然还要请Sumproduct函数过来帮衬一把。最后结果即是: =SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$5)&'日!B:B'),A2,INDIRECT(ROW($1:$5)&'日!C:C'))) ,鼠标下拉公式,最终结果如图: 复盘一下: 1、本例涉及需要引用数据,自然想要Vlookup,或者Index,Match等。但要多表引用,只能求助INDIRECT了,最后求和,自然要请到Sumproduct。所以Sumif函数多表求和,关键要掌握Indirect和Sumproduct函数的基础用法,这两个函数相对来说有一定的难度,感兴趣者可以参阅学习尚西的165集函数透视表视频教程,目录如下: |
|