分享

Excel科普(十二)|SUMIF求和函数高级用法:跨多表条件求和

 美好r5r48lew4e 2019-12-14

Excel科普(十二)|SUMIF求和函数高级用法:跨多表条件求和

sumif是条件求和函数,与sum、sumifs、sumproduct同属,一般情况下我们只是用于单表求和,今天小白就给大家科普一下sumif函数的高级用法,跨多表条件求和

一、同工作簿,工作表名称有规则情况(序号+字符)

【例】如下图所示,有1日~5日5个列名相同、行数不同的明细表,要求汇总出每个产品的销量之和。

Excel科普(十二)|SUMIF求和函数高级用法:跨多表条件求和

分表示例,1日~5日,5个分表

Excel科普(十二)|SUMIF求和函数高级用法:跨多表条件求和

汇总表示例

分析:

如果只有一个表,我们只需要用sumif函数直接求和:

=SUMIF('1日'!E:E,汇总!D2,'1日'!F:F)

对于多个表,上图示例中用的函数为:

=SUMIF('1日'!E:E,汇总!D2,'1日'!F:F)+SUMIF('2日'!E:E,汇总!D2,'2日'!F:F)+SUMIF('3日'!E:E,汇总!D2,'3日'!F:F)+SUMIF('4日'!E:E,汇总!D2,'4日'!F:F)+SUMIF('5日'!E:E,汇总!D2,'5日'!F:F)

除了用sumif()+sumif+sumif()...外,sumif函数支持多表同时求和,但必须用indirect函数生成对多个表的引用,即:

Excel科普(十二)|SUMIF求和函数高级用法:跨多表条件求和

将上图中标蓝出【range】参数替换为INDIRECT(ROW($1:$5)&'日!E:E')

Excel科普(十二)|SUMIF求和函数高级用法:跨多表条件求和

将上图中标蓝出【sum_range】参数替换为INDIRECT(ROW($1:$5)&'日!F:F')

Indirect函数有不明白的,还请自行百度,嘿!

用sumif组合起来,即:

=SUMIF(INDIRECT(ROW($1:$5)&'日!E:E'),D2,INDIRECT(ROW($1:$5)&'日!F:F'))

而上述的公式返回的每个表的求和结果,是一组数,实例中的产品A的销量结果是{254;0;0;605;0},最后还需要用sumrpoduct函数进行求和,即:

=SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$5)&'日!E:E'),D2,INDIRECT(ROW($1:$5)&'日!F:F')))

用此公式即可返回正确的求和结果。

二、同工作簿,工作表名称不规则

Excel科普(十二)|SUMIF求和函数高级用法:跨多表条件求和

工作表名称常常是不规则的,如上图所示

分析:

首先我们需要用宏表函数取得表名

公式 - 名称管理器 - 新建名称 - 在新建名称中输入名称“qh”,然后“引用位置”框中输入公式:

=MID(GET.WORKBOOK(1),FIND(']',GET.WORKBOOK(1))+1,99)&T(now())

公式说明:

GET.WORKBOOK(1)是宏表函数,当参数是1时,可以获取当前工作簿中所有工作表名称,由于名称中带有工作簿名称,所以用FIND+MID截取只含工作表名称的字符串,&T(now())的作用是让公式自动更新。

Excel科普(十二)|SUMIF求和函数高级用法:跨多表条件求和

新建名称,用宏表函数获取sheet名称

然后,我们就可以在公式中用 qh&'! 替换原来的ROW($1:$5)&'日!

最终公式为:

=SUMPRODUCT((SUMIF(INDIRECT(qh&'!E:E'),H2,INDIRECT(qh&'!F:F'))))

  • 重要:由于qh取得的名称中包括“合计”,所以汇总表在制作时,要避开E列和F列,以免造成循环引用。

Excel科普(十二)|SUMIF求和函数高级用法:跨多表条件求和

好的,完美解决

好的,今天的科普内容就这么多了,你看懂了没?

下期再见!!!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多