① VLOOKUP函数,表示搜索一个或多个数据列。
② 表示将单元格 A3 的值作为搜索内容。
③ 表示在工作表《三年1班》单元格 A3:E17 的范围内搜索是否有与单元格 A3 的值相匹配的内容。
④ 如果找到了相匹配的值,则返回工作表《三年1班》单元格 A3:E17 第3列的对应内容。
⑤ "FALSE",表示查找时要求完全匹配,而不是模糊匹配。
为什么 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