百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

你以为的Vlookup函数很简单,其实还有好多高阶用法

itomcoil 2025-10-02 01:00 13 浏览

Hi,

今天我们聊一下EXCEL基础必备函数vlookup。或许很多人很不屑,这个函数不是很简单吗,我已经会了。不用再了解。

当然,Vlookup函数是一个查找引用函数,也是很多入门EXCEL的人必须要学的一个函数。其实,我想说的是,除去基本功能,vlookup还是很多使用方法,可以帮助我们快速处理数据。

一、什么是Vlookup

Vlookup本意是垂直查找引用,可以允许我们在给定的一个矩阵中,在矩阵中的第几列查找你需要查找的值。如果一旦从上往下找到,可以返回找到所在行的第几列值。

如何深入理解或者记忆这个函数呢?

V指的是vertical,垂直的意思

Look up 指的就是查找

因此这个函数的本意就是垂直查找引用第几列的值。

二、基本语法与功能

基本语法:Vlookup(查找值,查找的矩阵,返回第几列,匹配模式),

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

Vlookup会拿着第一个参数需要查找的值到查找的矩阵中去查询,查找值只会在查找矩阵中的第一列进行查找,即查找值和矩阵的第一列数据类型、数据定义是一致的。

比如我们查找值是姓名,那么被查找列这一列的值肯定是姓名,这个我们在选择查找范围的时候一定要注意。

找到后,我们就要决定返回被找到行的第几列值,然后最终确定是否近似匹配。关于匹配方式,后续再说。一般而言,选择false 或0,即精确匹配。

我们举个例子,我们有个人员薪酬表,我们需要通过员工编号找到其对应的姓名,工资等信息。

先上数据:

我们先用工号查找对应的姓名:

K5单元格公式:

=VLOOKUP(J5,$B$3:$C$27,2,0)

这个要注意如果查找区域不是整列,需要固定选择区域,即绝对引用地址。返回值“#N/A”,表示查不到相关数据。

这个是基本语法。


三、进阶用法

1.结合if函数进行反向查找

现在要通过员工号查找所在部门。

因为部门在员工号的前面,这样就不能选择矩阵,因为员工号无法在矩阵的第一列了。

当然,一种解决方案是将部门调整到表格的最后一列。这里我们暂时不考虑更改表格的内容。我们用if函数来将工号和部门两列进行互换。

语法如下:

IF({1,0},$B$3:$B$27,$A$3:$A$27)

这里有个巧妙的用法,if函数的第一个产生是一个举证{1,0},if先判断是1,执行$B$3:$B$27,然后判断0,执行$A$3:$A$27,这样就实现了两列互换。

其实这是一个数组公式。

然后我们在vlookup中的查找范围就用上面那个互换的范围,L5公式如下:

=VLOOKUP(J5,IF({1,0},$B$3:$B$27,$A$3:$A$27),2,0)


2.模糊查找,实现数据分档

当我们需要对一组数据按一定规则进行分档时,我们可以用if来逐层判断,但更好的方式是用vlookup进行模糊匹配判断。这种解决方案更好理解,也更容易。同时,可以不受条件有多复杂的限制。

例如,我们需要对工资范围进行分档,规则如下:

这个时候我们需要构建一个判断矩阵:

我们在工资区间列进行数据分档判断,G3单元格公式如下:

= VLOOKUP(F3,$J$13:$K$17,2,1)

和基本功能用法唯一的区别就是最后一个参数的值是模糊匹配,值可写1或true。

例如第一个值20215,vlookup会拿这个值去判断矩阵里进行模糊匹配

  • 20215>=0,结果是true,程序继续往下判断
  • 20215 >=10000,结果是true,程序继续往下判断
  • 20215 >=20000,结果是true,程序继续往下判断
  • 20215 >=25000,结果是false,程序停止,返回前一步20000对应的范围”2-2.5W”

因此,可以看出当进行模糊匹配的情况下,查找值最多只能大于等于查找范围里面的第一列值。这里面还隐含另外一个条件,就是查找范围的第一列值必须是升序排列。

3.Vlookup+iferror进行去除错误值

当遇到#/A错误时,我们可能需要先判断错误,然后以0或者其它值替代。这个时候我们可以用iferror嵌套vlookup来进行处理:

例如单元格N5公式:

=IFERROR(VLOOKUP(J5,$B$3:$G$27,6,0),"")

函数先判断vlookup是否找不到值,找不到就返回空值,找到返回vlookup找到的值。

可以看到Y00026、Y00027两个不存在的员工号,查找值未出现#N/A的错误。

4.vlookup的替代函数

当用vlookup 返回值的值是数值,且不存在重复的记录。我们可以用sumif,sumifs来汇总数值。因为没有重复的数据,实际的汇总就只有一行。另外遇到不存在的,会直接返回0,省去处理#N/A的错误。

单位格M5的公式:

=SUMIF($B$3:$B$27,J5,$F$3:$F$27)

四、其它注意事项

如果vlookup查找的数据较多,计算速度会比较慢,可以采取一些先按查找字段进行排序。同时,另外可以采取一些动态引用需要的查找区域,例如用indirect函数结合其它函数进行处理。这部分提供一种思路,后续我们有时间再去专题处理,即如何提供vlookup的查找效率。

好了,今日分享到这里。

我们学习基础的函数,一定需要全方位了解其基本功能,了解其运行机制,这样才能举一反三,并与其它函数进行配合使用,从而提高我们的使用效率。

了解一项新知,必须了解其基本概念,即本质。否则,一切都是表象或者幻象。一旦我们面临新的环境下,我们又会变得无所适从。

我是华哥。每日精进,不负光阴韶华。

赠人玫瑰,手留余香。欢迎评论、点赞、关注,转发。

相关推荐

Python编程实现求解高次方程_python求次幂
Python编程实现求解高次方程_python求次幂

#头条创作挑战赛#编程求解一元多次方程,一般情况下对于高次方程我们只求出近似解,较少的情况可以得到精确解。这里给出两种经典的方法,一种是牛顿迭代法,它是求解方程根的有效方法,通过若干次迭代(重复执行部分代码,每次使变量的当前值被计算出的新值...

2025-10-23 03:58 itomcoil

python常用得内置函数解析——sorted()函数

接下来我们详细解析Python中非常重要的内置函数sorted()1.函数定义sorted()函数用于对任何可迭代对象进行排序,并返回一个新的排序后的列表。语法:sorted(iterabl...

Python入门学习教程:第 6 章 列表

6.1什么是列表?在Python中,列表(List)是一种用于存储多个元素的有序集合,它是最常用的数据结构之一。列表中的元素可以是不同的数据类型,如整数、字符串、浮点数,甚至可以是另一个列表。列...

Python之函数进阶-函数加强(上)_python怎么用函数

一.递归函数递归是一种编程技术,其中函数调用自身以解决问题。递归函数需要有一个或多个终止条件,以防止无限递归。递归可以用于解决许多问题,例如排序、搜索、解析语法等。递归的优点是代码简洁、易于理解,并...

Python内置函数range_python内置函数int的作用

range类型表示不可变的数字序列,通常用于在for循环中循环指定的次数。range(stop)range(start,stop[,step])range构造器的参数必须为整数(可以是内...

python常用得内置函数解析——abs()函数

大家号这两天主要是几个常用得内置函数详解详细解析一下Python中非常常用的内置函数abs()。1.函数定义abs(x)是Python的一个内置函数,用于返回一个数的绝对值。参数:x...

如何在Python中获取数字的绝对值?

Python有两种获取数字绝对值的方法:内置abs()函数返回绝对值。math.fabs()函数还返回浮点绝对值。abs()函数获取绝对值内置abs()函数返回绝对值,要使用该函数,只需直接调用:a...

贪心算法变种及Python模板_贪心算法几个经典例子python

贪心算法是一种在每一步选择中都采取当前状态下最优的选择,从而希望导致结果是全局最优的算法策略。以下是贪心算法的主要变种、对应的模板和解决的问题特点。1.区间调度问题问题特点需要从一组区间中选择最大数...

Python倒车请注意!负步长range的10个高能用法,让代码效率翻倍

你是否曾遇到过需要倒着处理数据的情况?面对时间序列、日志文件或者矩阵操作,传统的遍历方式往往捉襟见肘。今天我们就来揭秘Python中那个被低估的功能——range的负步长操作,让你的代码优雅反转!一、...

Python中while循环详解_python怎么while循环

Python中的`while`循环是一种基于条件判断的重复执行结构,适用于不确定循环次数但明确终止条件的场景。以下是详细解析:---###一、基本语法```pythonwhile条件表达式:循环体...

简单的python-核心篇-面向对象编程

在Python中,类本身也是对象,这被称为"元类"。这种设计让Python的面向对象编程具有极大的灵活性。classMyClass:"""一个简单的...

简单的python-python3中的不变的元组

golang中没有内置的元组类型,但是多值返回的处理结果模拟了元组的味道。因此,在golang中"元组”只是一个将多个值(可能是同类型的,也可能是不同类型的)绑定在一起的一种便利方法,通常,也...

python中必须掌握的20个核心函数——sorted()函数

sorted()是Python的内置函数,用于对可迭代对象进行排序,返回一个新的排序后的列表,不修改原始对象。一、sorted()的基本用法1.1方法签名sorted(iterable,*,ke...

12 个 Python 高级技巧,让你的代码瞬间清晰、高效

在日常的编程工作中,我们常常追求代码的精简、优雅和高效。你可能已经熟练掌握了列表推导式(listcomprehensions)、f-string和枚举(enumerate)等常用技巧,但有时仍会觉...

Python的10个进阶技巧:写出更快、更省内存、更优雅的代码

在Python的世界里,我们总是在追求效率和可读性的完美平衡。你不需要一个数百行的新框架来让你的代码变得优雅而快速。事实上,真正能带来巨大提升的,往往是那些看似微小、却拥有高杠杆作用的技巧。这些技巧能...