sumif跨表格引用,Sumif函数是条件求和函数,一般我们只是用于单表求和,今天本文就学习sumif函数的高级用法,跨多表条件求和。下面介绍sumif跨表格引用。
sumif跨表格引用1
例如表2的数据要用到表1的数据 如图为表1。 姓名为A列,割接方案为C列 表2其实是跟表1差不多一样的表,只是后面多了几列公式 如果我在表2想求张三的割接方案份数,则公式是用SUMIF(表1!A1:A5,A1,表1!C1:C5). 但问题是当我把基础表即表1某些人名或者顺... 如表2的数据要用到表1的数据
如图为表1,表1!C1,割接方案为C列
表2其实是跟表1差不多一样的表,只是后面多了几列公式
如果我在表2想求张三的割接方案份数,则公式是用SUMIF(表1!A1:A5,A1:C5)。
姓名为A列 展开 这是表二
sumif(range,criteria,sumrange)中的第一项range范围和第三项sumrange求和范围需要引用不同工作表中的数据,如何引用?
比如,需要判断表1、表2、表3的D列数值是否为0,将其中数值不为0的表1、表2、表3的'A列数值相加求和。
sumif跨表格引用2
sumif的高级用法:跨多表条件求和
officezhushou2019-02-03 20:02
一、工作表名规则(序号+字符)
【例】如下图所示,有1日~5日5个列相同、行数不同的明细表,要求汇总出每个产品的销量之和。
分表:
汇总表
分析:
如果只有一个表,我们只需要用sumif函数直接求和:
=SUMIF(1日!B:B,合计!A2,1日!C:C)
对于多个表,除了用sumif()+sumif+sumif()...外,Sumif函数支持多表同时求和,但必须用indirect函数生成对多个表的引用,即:
INDIRECT(ROW($1:$5)&"日!B:B")
INDIRECT(ROW($1:$5)&"日!C:C")
(回复 Indirect 可以查看该函数的用法)
用sumif组合起来,即:
=SUMIF(INDIRECT(ROW($1:$5)&"日!b:b"),A2,INDIRECT(ROW($1:$5)&"日!c:c")而上述的公式返回的每个表的求和结果,是一组数,最后还需要用sumrpoduct函数进行求和,即:=SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$5)&"日!b:b"),A2,INDIRECT(ROW($1:$5)&"日!c:c")))
二、工作表名称不规则
工作表名称常常是不规则的,如下图所示
分析:
首先我们需要用宏表函数取得表名
公式 - 名称管理器 - 新建名称 - 在新建名称中输入名称“sh”,然后“引用位置”框中输入公式:
=MID(BOOK(1),FIND("]",BOOK(1))+1,99)&T(now())
公式说明:
BOOK(1)是宏表函数,当参数是1时,可以获取当前工作簿中所有工作表名称,由于名称中带有工作簿名称,所以用FIND+MID截取只含工作表名称的字符串。&T(now())的作用是让公式自动更新。
然后,我们就可以在公式中用 sh&"! 替换原来的ROW($1:$5)&"日!,
最终公式为:
=SUMPRODUCT((SUMIF(INDIRECT(sh&"!b:b"),D2,INDIRECT(sh&"!c:c"))))
由于sh取得的名称中包括“合计”,所以汇总表在制作时,要避开B列和C列,以免造成循环引用。