EXCEL引用跨表数据SUMIF

例如表2的数据要用到表1的数据
如图为表1。
姓名为A列,割接方案为C列
表2其实是跟表1差不多一样的表,只是后面多了几列公式
如果我在表2想求张三的割接方案份数,则公式是用SUMIF(表1!A1:A5,A1,表1!C1:C5).
但问题是当我把基础表即表1某些人名或者顺序调换是,就出现了VALUE的错误
这是表二

第1个回答  2012-02-03
从图片看,表1的A1至A5根本就不是姓名,而是专业所,即使能够计算结果也该是0,至于公式结果显示出错,猜测是单元格中包含有不可见字符。
姓名在表1的 b7:b12,试试看将公式改为:
=SUMIF(表1!b7:b12,a1,表1!d7:d12).

且表2的 a1单元格输入 张三,应该会得到准确结果。追问

额,不好意思啊,是为了方便你们看,所以自己才赋予的A1.A5,这些引用没有错的。
我记得SUMIF是不能跨表引用的?
因为我基础表一改变,另外那个表就给我显示错误了,有没有什么函数可以避免这个问题,方便跨表引用数据

追答

sumif同样可以跨表求和呀,当然也可以用sumproduct函数、sum数组公式效果都相同。
你给出有行号列标的图片吧。

追问

噢噢噢,好的。这是表1

追答

在表2的e9单元格输入:
=SUMIF(表1!$b$7:$b$1000,$b9,表1!e$4:e$1000)
下拉,得出的就是对应姓名的割接方案份数之和。

第2个回答  2021-03-27
、 需要在什么场合下使用该函数?
比如有两张工作表,第二张工作表的相关数据需要引用第一张工作表的数据,并且工作表行数较多(如数千行),第二张工作表的查找单元格字段(即lookup_value参数)与第一张工作表中的相关数据顺序不一致(如果一致可以用高级筛选功能实现),并且通过普通的筛选功能无法快速批量实现,这时就可以使用vlookup函数来进行批量操作。

2. vlookup函数原型如下:

VLOOKUP(lookup_value,table_array, col_index_num, [range_lookup])

参数说明:第一个参数—lookup_value:需要查找的单元格(即上图“表二学员统计表”中的“学号”字段);

第二个参数—table_array:需要查找的区域(即上图“表一学员信息表”中虚线框选的区域);

第三个参数—col_index_num:查找区域中该字段的列数(即上图中“学校”字段在查找区域中为第3列,注意要从框选区域中的第一列数起);

第四个参数—range_lookup:一般要设置为false,即精确匹配,如果设置为true,非精确匹配将会出现意想不到的情况,建议设置为false即可。

3. 应用vlookup函数需要注意的地方
1)vlookup参数的第二个参数,即框选区域的第一列必须为查找单元格字段值所在的那一列,比如上图框选区域的第一列为学号字段;

2)第三个参数即列数是从框选区域的第一列开始数起,而不是从表一的第一列即序号列开始数起;

3)向下、向右拖动公式时要注意单元格地址的相对引用与绝对引用方式。
第3个回答  2021-03-28
EXCEL引用跨表数据SUMIF?具体操作如下:
1.在sheet2A1中输入“11”。
2.在sheet3A1中输入“22”。
3.在sheet4A1中输入“=”。
4.在sheet2中点击A1。
5.输入“+”。
6.在sheet3中点击A1。
7.点击回车,会发现将计算结果显示到了sheet4A1中。举例说明。例如有一明细表如图:(注:该表的工作表名称=“明细表")
现在汇总表中通过SUMIF函数根据地区名进行汇总。汇总表如图:
C2的公式:=SUMIF(明细表!B:B,B2,明细表!D:D)
第4个回答  2021-03-27
如果只有一个表,我们只需要用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")))
来自网络。
第5个回答  2021-03-28
sumif是条件求和函数,与sum、sumifs、sumproduct同属,一般情况下我们只是用于单表求和,今天小白就给大家科普一下sumif函数的高级用法,跨多表条件求和。

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

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

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

汇总表示例

分析:

如果只有一个表,我们只需要用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函数生成对多个表的引用,即:

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



将上图中标蓝出【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")))

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

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

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

分析:

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

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

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

公式说明:

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