使用vlookup嵌套INDIRECT函数实现跨表数据引用
这是一个使用 vlookup 函数嵌套 INDIRECT 函数来实现跨工作表数据引用的教程。
某小学决定要抽查本校三年级三个班的期末考情况,抽查方法为在每个班中抽查5名学生,将这15名学生的期末考情况汇总到一个表中考察。
工具/原料
- 电子表格软件
- vlookup 、 INDIRECT
方法/步骤
- 1
该小学现已在一个工作簿中建立《三年1班》、《三年2班》、《三年3班》3张工作表,如图:
- 2
现在每班5名同学也已抽出,如图:
现在要做的,就是要在《成绩抽查》工作表里面,引用《三年1班》、《三年2班》、《三年3班》3张工作表中被抽查的学生的成绩。应该怎么做呢?
使用 VLOOKUP 函数引用数据
根据常规的做法,我们可以使用 VLOOKUP 函数实现数据的引用。
我们可以在《成绩抽查》工作表 D3 单元格中填写公式:
=VLOOKUP(A3,三年1班!A3:E17,3,FALSE)
公式讲解:
① VLOOKUP函数,表示搜索一个或多个数据列。
② 表示将单元格 A3 的值作为搜索内容。
③ 表示在工作表《三年1班》单元格 A3:E17 的范围内搜索是否有与单元格 A3 的值相匹配的内容。
④ 如果找到了相匹配的值,则返回工作表《三年1班》单元格 A3:E17 第3列的对应内容。
⑤ "FALSE",表示查找时要求完全匹配,而不是模糊匹配。
我们把此公式填充到 D4:D17,执行结果如下:
为什么 D8:D17 单元格会出现 "#N/A" 这样的结果呢?这是因为所要查找的数据分散在三个工作表,而原来的公式只是在《三年1班》这一个工作表中查找。因为在工作表《三年1班》中查找不到2班、3班的学生,所以公式结果出错。那有没有一个函数能和 VLOOKUP 函数结合在一起,帮助我们实现跨工作表的数据引用?
有的,那就是 INDIRECT 函数。
使用 INDIRECT 函数,使数据引用实现跨工作表
公式修改 我们现在考虑如何修改我们最先列出的那个公式。其中一个有效的方法,是把上一个公式中 "三年1班!A3:E17" 这一部分替换为 "INDIRECT($C3&"!A3:E17")" 。
公式讲解:
我们先来看分式①。分式①是一个文本函数。表示将C3单元格和 "!A3:E17" 这个字符串联合起来,组成一个新字符串。C3单元格中的数值为 "三年1班" ,和 "!A3:E17" 这个字符串组合后就成为 "三年1班!A3:E17" 。所以这个公式此时就相当于:
=INDIRECT("三年1班!A3:E17")
而它等价于:
=三年1班!A3:E1
所以我们就得到了我们所需要的单元格的引用。因此,我们将我们给出的第一个公式
=VLOOKUP(A3,三年1班!A3:E17,3,FALSE)
中 "三年1班!A3:E17" 这一部分替换为 "INDIRECT("三年1班!A3:E17")" ,就修改成为如下的新公式:
=VLOOKUP(A3,INDIRECT($C3&"!A3:E17"),3,FALSE)
我们将这个公式填充,公式就能根据C列中所列出的不同班级,在相应工作表中查找和引用相关数据,这样显示结果就正常了。
完成工作表我们再在E3填写公式:
=VLOOKUP(A3,INDIRECT($C3&"!A3:E17"),4,FALSE)
在F3填写公式:
=VLOOKUP(A3,INDIRECT($C3&"!A3:E17"),5,FALSE)
并填充,最终完成这一个数据表:
电子表格中函数嵌套使用会大大提高办公效率,大家应该多多使用练习。
使用vlookup嵌套INDIRECT函数实现跨表数据引用的更多相关文章
- Bat脚本备份sqlserver 表结构、存储过程、函数、指定表数据
Bat脚本备份sqlserver 表结构.存储过程.指定表数据: @echo off cd /d %~dp0 ::备份表结构.存储过程和部分配置表的数据 set LogFile=report.log ...
- excel跨表数据链接
按=,然后选择第二个页签下某个数据. 去掉$号,就可以下拉数据
- INDIRECT函数实现动态图表的跨数据抓取
涉及函数: indirect函数:通常有两种用法.直接指定单元格地址和隐式指定单元格地址.直接指定:=indirect("A4"),则会返回A4单元格所显示的内容.参数给定的既是字 ...
- Excel-VLOOKUP函数跨表匹配查找①
问题场景 对表中的员工进行测评总结,从所有员工考核明细表中匹配这些参与测评的员工的得分和相关信息: 场景一 从所有员工明细表中匹配需要参与测评的员工相关信息. 建了两个sheet页,考核员工表和全员考 ...
- django之 使用views.py里面的函数对表进行增删改查 内容(models.py中表的创建、views.py中函数的使用,基于对象的跨表查询)
models之对于表的创建有以下几种: 一对一:ForeignKey("Author",unique=True), OneToOneField("Author" ...
- django(3) 一对多跨表查询、ajax、多对多
1.一对多跨表查询获取数据的三种形式:对象.字典.元组 例:有host与business两张表,host与business的id字段关联,business在host表中的对象名是b, 通过查询hos ...
- sql:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询
执行sql语句: select * from ( select * from tab where ID>20 order by userID desc ) as a order by date ...
- django之跨表查询及添加记录
一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many); 一本书只应该由一个出版商出 ...
- python 全栈开发,Day74(基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询)
昨日内容回顾 # 一对多的添加方式1(推荐) # book=Book.objects.create(title="水浒传",price=100,pub_date="164 ...
随机推荐
- Mysql利用存储过程插入400W条数据
CREATE TABLE dept( /*部门表*/ deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, /*编号*/ dname VARCHAR(20) NO ...
- 使用canvas编写时间轴插件
使用canvas编写时间轴插件 背景 项目中有一个视频广场的功能,需要一个时间轴类似视频播放中进度条功能一样显示录像情况,并且可以点击.拖动.放大缩小展示时间轴,获取到时间轴的某个时间.原来的时间轴是 ...
- UVA - 10118 Free Candies 记忆化搜索经典
思路:d[a][b][c][d]表示从已经第一个篮子取了a颗糖,第二个取了b颗糖,第三个取了c颗糖,第四个取了d颗糖最多还能够获得多少糖果.首先明白一个问题:如果能分别取a,b,c,d个,不论如何取, ...
- java:产生小数位数为2的随机概率,使得和为1
public static List<InstSec> setDataSec(List<String> instno) { List<InstSec> result ...
- React是什么,为什么要使用它?
React是Facrbook内部的一个JavaScript类库,已于1年开源,可用于创建Web用户交互界面.它引入了一种新的方式来处理浏览器DOM.那些需要手动更新DOM.费力地记录每一个状态的日子一 ...
- Jpa中设置OneToMany插入报异常解决办法
在Jpa中如果设置@OneToMany,但使用的时候,如果没有赋值,会报异常出现,这时只需要实例化一个空数组即可, 但类型一定要对应: 实例如下: newField.setxxxxxList(new ...
- Fresco-FaceBook推出的Android图片加载库
在Android设备上面,快速高效的显示图片是极为重要的.过去的几年里,我们在如何高效的存储图像这方面遇到了很多问题.图片太大,但是手机的内存却很小.每一个像素的R.G.B和alpha通道总共要占用4 ...
- PHP XML简介
php xml文件编程. xml简介 XML作用 1.可以作为程序间通讯的标准(ajax text xml) 2.可以作为配置文件 3.可以作为小型数据库 XML语法 一个xml文件应该包括以下几个内 ...
- java特征
java的核心是面向对象,与之相对的是面向过程的编程,在对整个java编程没有足够的理解和运用的情况下恐怕没办法很好的理解这两个概念. 在我的初步理解中,写一个程序就例如做一件事情,面向过程的思想或许 ...
- eclipse和android studio的目录结构分析
不管你喜不喜欢,愿不愿意,自从Google宣布正式停止对于eclipse的支持,要开发android的APP,你都得乖乖的用android studio(以下简称AS)了,不过也不是什么悲伤的故事,对 ...