Vlookup 函数相信很多小伙伴都有过。但你真的完全了解它吗?今天我们完整的重新认识下它,相信很多小伙伴会有不一样的收获。
这里有三张表如下图所示:
分别是三个班级的语文、数学、英语 成绩。要想知道三班 ,学号1000 ,英语成绩。我们可以这么写:Vlookup(1000, i25:m29,4,0)。
这没问题,但是缺少灵活性。今天我们要让Vlookup(搜索值,搜索区域,搜索值对应的目标值在搜索区域所在的列,精确匹配) 的每个参数都活动起来!
动态的搜索值:
把1000改成单元引用,这也是很多同学常用的方法。
如上图,改成单元格引用后,结果会随着单元格值的变化而变化。当然,在实际工作中我们可以对这个单元格内容进行深度的改造,比如加入其它函数嵌套判断、计数......可以有很多的扩展。
动态的搜索区域
如上图所示:i25:m29 这是个单元格区域。像这样的引用区域显然与上面搜索值,直接输入1000那样固定常量如出一辙。我们可以有几种方法使它具有弹性。
方法1:将单元格区域命名。如下图
这样我们就可以直接使用三班来代替i25:m29,事实上这里的名称定义i25:m29可以改成用OFFSET函数使得更加灵活,这里我们就暂不扩展了。
方法2:将单元格区域变为智能表(选择带列标题的区域按CTRL+T/CTRL+L/【套用表格式】)。如下图
【套用表格式】
智能表CTRL+L/CTRL+T
完成后可以修改自己需要的表名。与上面的定义名称一样,在VLOOKUP 中就可以使用 表名作为区域引用。
有了名称但公式不能这样写:
这样公式中F19会被解释成字符“三班”而不是区域。我们需要使用INDIRECT(F19) 将“三班”转换成区域引用才能得到正确的结果。
到这里F19单元格又可以让我们尽情发挥了哈......
动态的列:
与前面讲到的一样不能僵硬的使用一个数字写死了。我们可以常规的做法是使用单元格代替,或使用ROW()/COLUMN() 。变动表示,当然可以根据工作实际去做调整。
最后一个参数往往我们都使用精确查找。基本可以直接写0或false,如果确实需要模糊与精确匹配变动可用单元格来代替这个参数,调整单元格就可以了。
本案例主要是让大家深入学习VLOOKUP的每个参数,使用大家可以灵活的运用到工作中。
领取专属 10元无门槛券
私享最新 技术干货