WPS表格常用查找函数终极指南-第一期

song
song

WPS金话筒 | WPS寻令官

在日常的数据处理工作当中,经常需要对成百上千行的数据进行查询,掌握这几个函数,让你在数据查询中游刃有余。

本系列将详细介绍六个最常用的查找引用函数:VLOOKUP、HLOOKUP、XLOOKUP、LOOKUP、INDEX、MATCH,通过通俗易懂的案例,帮助你理解它们各自的特点和适用场景。本系列共四期,本期为第一期,介绍VLOOKUP与HLOOKUP函数

点击此处查看案例文件。


1️⃣VLOOKUP——最常用的查询函数,入坑必备

要是给Excel函数圈排资论辈的话,VLOOKUP绝对是C位出道的那一个。

它的作用是在数据表区域的首列中搜索某个特定的值,然后返回该行中指定列的数据。要使用它,需要填写四个参数:

=VLOOKUP(查找值,数据表,列序数,[匹配条件])

参数详解:

  1. 查找值——找什么:你要查找的值。

  1. 数据表——在哪儿找:你要搜索的区域。注意:查找值必须位于这个区域的第一列

  1. 列序数——返回第几列:你要返回的数据在查找区域中的第几列。例如,区域从B列开始,你要返回D列(第3列),就填3

  1. [匹配模式]——怎么匹配(可选):·

  • FALSE0精确匹配。没找到就返回错误值#N/A。这是最常用的。

  • TRUE1近似匹配。找最接近的值(通常用于查找等级,如根据分数找绩点)。

  1. VLOOKUP精确匹配

举个栗子🌰我现在有一个班级的学生成绩表,我需要通过学号查找学生姓名并列出成绩单,学生成绩表在A1:E5区域,我们需要在A8:E9区域,以A9单元格的学号自动生成一个成绩表,如下图:

B9单元格公式:

=VLOOKUP($A9,$A$2:$E$5,COLUMN(B$1),FALSE)

公式拆解:

  • 找什么$A9(混合引用,锁定A列,这样向右拖动时始终引用A列的学号)

  • 在哪找$A$1:$E$5(绝对引用,锁定整个成绩表区域)

  • 返回第几列COLUMN(B$1)(返回2,向右拖动时变成COLUMN(C$1)=3,COLUMN(D$1)=4,COLUMN(E$1)=5,实现自动递增)

  • 匹配条件FALSE(精确匹配,确保找到对应学号)

  1. VLOOKUP近似匹配

上面讲了精确匹配了,那近似匹配是怎么回事呢?

近似匹配的工作逻辑是:从第一个开始匹配,在数据表首列(升序排列的前提下)查找小于或等于查找值的最大值,然后返回该行对应的结果。

听起来有点绕?其实它最适合做一件事:区间查找(比如根据分数评等级、根据销售额算提成等)。

注意,当使用近似匹配时,查询的数据表首列的数据必须是按从小到大的顺序,如果顺序不对,匹配的结果也会是有问题的。

继续举个栗子🌰现在有一个分数评级表,需要对成绩进行评级如下图,那么B2单元格公式应该为:

=VLOOKUP($A2,$D$2:$E$5,2,TRUE)

注意啦,这里有一个非常重要的细节:为什么评级表的左边一列只写了分数下限,而不是把每个分数段都列全?

这正是近似匹配的精髓所在,它帮我们自动完成了“区间划分”的工作!

当查找79分时,VLOOKUP在升序的首列[0,60,80,90]中逐个比对。0<=79,继续;60<=79,继续;80<=79?不成立。此时,VLOOKUP会退回上一个符合条件的值(60),并返回其对应的‘及格’。

这时候就有人要问啦,我用VLOOKUP近似匹配是不是也可以查询文本呢?各位看官可以把这个问题交给WPS灵犀回答一下。

在问过WPS灵犀后,我得知的是可以使用近似匹配查询文本,但是不建议使用,很容易翻车。

到这里,总结一下使用近似匹配做区间查找时,必须遵守三条铁律:①首列必须升序排列;②首列必须是数值;③只写区间下限。

  1. VLOOKUP匹配模式

最后还有一个问题,不是说最后一个参数是可选吗,那如果我不写会怎么样?

我们还以分数评级距离,如下图是我输入对应公式的结果:

欸,怎么下面两个都没写参数,怎么结果还不一样呢?

有眼尖的朋友注意到了,关键在于:逗号!

情况1:写了逗号但没写参数→精确匹配

  • 第4个参数的位置被保留(有个逗号在那等着)

  • Excel理解为:你明确要写参数,只是没填内容

  • 结果:精确匹配(相当于FALSE)

情况2:完全没写逗号→近似匹配

  • 第4个参数的位置完全不存在

  • Excel理解为:你省略了这个可选参数

  • 结果:近似匹配(默认TRUE)

这个问题我们继续交给WPS灵犀,重点在下面了:

也就是说加逗号和不加逗号还有很大的区别,强烈建议在实际使用时把第四个参数写完整,才能更清楚知道是哪种匹配模式。

  1. VLOOKUP通配符匹配

很多人以为VLOOKUP只能做精确查找,其实它还支持通配符,可以实现各种模糊匹配!

关键点:第四参数必须是FALSE0(精确匹配模式),通配符才能生效。

表格中支持的三个通配符:

通配符

名称

含义

通俗理解

*

星号

代表任意多个字符

可代表任意数量的字符,包括0个

?

问号

代表任意单个字符

只能代表1个字符,不能多不能少

~

波浪号

转义符

放在其他通配符前,将其变成普通字符

我们举个例子就知道了,现在我们需要从一个产品列表中找出红色的产品,如下图:

A9单元格公式:

=VLOOKUP("*红色*",$B$2:$B$5,1,FALSE)

公式拆解:

  • 找什么:"*红色*"(前后可以有任意字符,只要包含“红色”)

  • 在哪找:$B$2:$B$5(在产品名称列中查找)

  • 返回第几列:1(返回第1列,即产品名称)

  • 匹配条件:FALSE(精确匹配模式,通配符查询必须是精确匹配)

最后得到结果:红色连衣裙

有好奇宝宝就要问了,红色T恤也有红色,为什么没有显示了,这是因为VLOOKUP函数只返回第一个遇到符合条件的值,如果是逆序查找就会返回红色T恤。

当需要查询的文本本身就含有*?时,则需要在符号前面添加转义字符~,及~*~?~~,告诉WPS,~后面的符号不要当成通配符,要当作普通符号。


2️⃣HLOOKUP——被遗忘的查询函数,VLOOKUP的同胞兄弟

HLOOKUP和VLOOKUP是双胞胎兄弟,长得一模一样,就是方向不同。看看它需要填写的四个参数:

=HLOOKUP(查找值,数据表,行序数,[匹配条件])

与VLOOKUP函数相比,不一致的在第三个参数——行序数,这就是为什么说他俩是双胞胎兄弟了。它的作用是在数据表区域的首行中搜索某个特定的值,然后返回该列中指定列的数据

  • 行序数——返回第几行:你要返回的数据在查找区域中的第几行。例如,区域从2行开始,你要返回4行(第3行),就填3

其他参数参照VLOOKUP部分的讲解,注意查找值必须位于数据表的第一行。

  1. HLOOKUP精确匹配

日常工作中遇到的多数是纵向表格数据,因此HLOOKUP用的较少,但是两者在使用时高度相似,这里举一个简单的例子。

如下表是某门店上半年的销售数据(数据区域在A1:F2):

月份

1月

2月

3月

4月

5月

6月

销售额

8500

9200

7800

10300

8900

9000

现在我想查询3月份的销售额是多少,则写的公式为:

=HLOOKUP("3月",B1:G2,2,FALSE)

返回结果:7800

公式拆解:

  • 找什么:"3月"——在首行查找这个月份

  • 在哪找:B1:G2——整个报表区域

  • 返回第几行:2——销售额在第2行,返回对应的值

  • 匹配条件:FALSE——精确匹配

从这里可以看出,与VLOOKUP的区别就是数据表为横向查找,查找的内容需要在数据表的第一行。鉴于你看到这里已经学会了VLOOKUP,相信你到这里也就学会了HLOOKUP,不再重复介绍近似匹配。

  1. VLOOKUP与HLOOKUP的局限性
  1. 单向查找:查找值只能在首行/列,查询只能向右/下

  1. 硬编码:当列/行序数为数字定位时,输入或删除数据表的行/列后返回值会错乱

  1. 只能返回单行/列数据:每次只能返回一列/行数据,需要多个结果需要写多个公式

  1. 精确匹配找不到就报错:精确匹配找不到时直接返回错误值#N/A,需要嵌套IFERROR才可自定义

  1. 近似匹配要求严格:升序是铁律

  1. 不能处理多条件查询

  1. 通配符支持有限:仅支持基本的通配符*?


下期预告:XLOOKUP与LOOKUP函数

广东省
浏览 98
收藏
12
分享
12 +1
2
+1
全部评论 2
 
HC.旋
HC.旋

WPS寻令官

跟着Song老师学函数,步步为赢不迷路。
· 福建省
回复
 
赵二
学习。
· 辽宁省
1
回复