欢迎光临草根哥
www.cgg6.com

多Excel表相同项求和方法

一、工作表名规则(序号+字符)

 

【例】如下图所示,有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(GET.WORKBOOK(1),FIND(“]”,GET.WORKBOOK(1))+1,99)&T(now())

 

 

公式说明:

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

 

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

最终公式为:

=SUMPRODUCT((SUMIF(INDIRECT(sh&”!b:b”),D2,INDIRECT(sh&”!c:c”))))

 

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

 

赞(3)
版权声明:
文章名称:《多Excel表相同项求和方法》
文章链接:http://www.cgg6.com/4541.html
声明:文章版权归本站自创作者所有,未经允许不得转载

评论 抢沙发

评论前必须登录!