跨表动态查询数据?有INDIRECT函数,就是那么简单!
送人玫瑰,手有余香,请将文章分享给更多朋友
动手操作是熟练掌握EXCEL的最快捷途径!
今天要向大家分享的是一例关于INDIRECT函数的应用例子。
某学校统计了期中考试和期末考试的成绩,并形成了下面的两份清单。这两份清单中的表头和格式是一样的,只是学生的排列顺序不一样。
这一份是期中考试的成绩,工作表名称为“期中考试”。
这一份是期末考试的成绩,工作表名称为“期末考试”。
现在要将上面两张表的信息汇总到下面这张表里去。
这里要用到跨表查询的技巧。
在单元格D2中输入公式“=VLOOKUP(IF($B2="",$B1,$B2),INDIRECT($C2&"!A:Z"),COLUMN(C1),)”,并向下、向右拖曳即可。
思路:
由于姓名列有单元格合并,因此利用IF函数做一个简单的判断IF($B2="",$B1,$B2),确保VLOOKUP函数的第一个参数不为空值
INDIRECT($C2&"!A:Z")部分,其中单元格C2中的内是“期中考试”,整个INDIRECT返回的是工作表“期中考试”中A列到Z列的区域。随之公式的拖曳,INDIRECT函数返回的结果在“期中考试”和“期末考试”这两个工作表切换
COLUMN(C1)部分,由于两张考试成绩表中,科目“语文”都在C列,也就是第三列,因此COLUMN(C1)告诉了VLOOKUP函数该从第几列开始查找
这里是一个非常简单的应用,原因是源数据表和汇总表的结构是完全一致的。实际上在很多时候源数据表和汇总表的结构并不一致,这种情况下公式的书写会更加复杂,还要在VLOOKUP函数的第3个参数上套用MATCH函数,这里就不深入介绍了。
如果大家向了解更多INDIRECT函数的知识,请参看帖子总结篇--INDIRECT函数使用终极帖。
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
我就知道你“在看”