已收录

一鱼三吃(配凉菜)-员工信息检索函数公式实战技巧

临商珑胜
临商珑胜 Lv.2 潜力创作者

Lv.2 潜力创作者

📌WPS表格中,完成同一个工作任务有多种函数公式编写方法。”一鱼三吃“,殊途同归,让我们以一份员工资料表为示例,分别用不同的函数解决,看看谁更高效、更灵活。

平行世界。

"要想回家早,表格得学好!",同事小白自从我引用WPS社区内的技术大🐮牛张俊老师的这句"名言"后,便对表格技巧产生了浓厚的兴趣,天天缠着我问这问那。

这天,小白通过OA传过来一个‘非常大有限公司员工资料表.xlsx”,急匆匆地跑来问我:‘老兄,我想通过‘员工资料表’工作表,依据’姓名‘这一列的数据,填充另一个‘员工信息检索’的内容,用函数公式该怎么写?”

员工资料表

我微微一笑,拍了拍他的肩膀说:‘好的,咱们今天就拿这份员工表,一鱼三吃,分别用不同的函数公式来完成,看看👀哪个更好!”

我打开‘员工资料表”工作簿文件,工作里里面密密麻麻地记录着公司员工的各种信息,包括员工ID、姓名、入职日期、联系方式等。我对两个工作表分别进行了筛选,便对小白说:‘你小子,两个表都有重复的信息,你会挖坑考验老汉我了?”

小白😳急忙摆手说:‘我冤枉啊!我没有,这表是我刚收到的,你是怎么发现的?”

我说:‘对工作表进行'筛选','计数'选项默认是‘降序’,括弧里的数字大于一的记录都是重复项,不信你看。”!

小白定睛一看,果然如此,连连点头说:‘原来筛选还能这么用,这招真妙!要删除吗?”

我说:‘用函数公式当前不用删除!”

小白问:‘那接下来呢?函数公式该怎么写?”

我说:‘别急,咱们一步步来。‘

第一种方法:INDEX+MATCH组合函数

🥇先说第一种方法——INDEX+MATCH组合函数。”INDEX 负责"取第几个",MATCH 负责"算出是第几个",两者一内一外配合,可以灵活地从‘员工资料表’中按姓名查找到任意列的信息。"

以「员工信息检索」第2行(姓名=王五)为例,4 个单元格分别写:

写完 B2:E2 后,选中这四个单元格向下拖拽填充到第 20 行,19 个姓名就全部自动回填完成。这样,一份完整的员工信息检索表就通过函数公式搞定了。

🥈参数解读

💡MATCH函数公式=MATCH($A2, 员工资料表!$B$2:$B$51, 0)

  • MATCH函数的第 1 参数 $A2查找值,即”员工信息检索‘工作表当前单元格数值。"王五"在”员工资料表‘工作表姓名列里是第 14 个,所以 MATCH 返回 14

  • 第 2 参数 员工资料表!$B$2:$B$51查找区域,源表的姓名列。

  • 第 3 参数 0精确匹配,必须与姓名完全一致才返回位置。

‘然后用INDEX公式再到目标列里按行号取值,这样就完成了整个查找过程。”

💡INDEX函数公式=INDEX(员工资料表!$F$2:$F$51, 14)

📌为什么要锁定 $ 符号

写法

含义

作用

$A2

列锁定、行不锁定

向右填充(B→E列)时始终引用 A 列姓名;向下填充时自动跟随每行姓名

员工资料表!$B$2:$B$51

整个区域锁定

防止向下/向右填充时查找区域跟着偏移

🥉容错机制

如果目标表里输入了源表中不存在的姓名,公式会显示错误。需要容错的话可以外面包一层:

B列(员工ID): =IFERROR(INDEX(员工资料表!$A$2:$A$51, MATCH($A2, 员工资料表!$B$2:$B$51, 0)), "未找到")

C列(基本工资): =IFERROR(INDEX(员工资料表!$F$2:$F$51, MATCH($A2, 员工资料表!$B$2:$B$51, 0)), "未找到")

D列(联系电话): =IFERROR(INDEX(员工资料表!$G$2:$G$51, MATCH($A2, 员工资料表!$B$2:$B$51, 0)), "未找到")

E列(联系地址): =IFERROR(INDEX(员工资料表!$H$2:$H$51, MATCH($A2, 员工资料表!$B$2:$B$51, 0)), "未找到")

第二种方法 XLOOKUP函数

🥇XLOOKUP 是新一代查找函数,比 INDEX+MATCH 更简洁直接,只需指定查找值、查找区域和返回区域,一次就能搞定,不需要 INDEX 和 MATCH 嵌套。

以「员工信息检索」第 2 行为例:

单元格

要取的字段

XLOOKUP 公式

B2

员工ID(源表A列)

=XLOOKUP($A2, 员工资料表!$B$2:$B$51, 员工资料表!$A$2:$A$51, "未找到")

C2

基本工资(源表F列)

=XLOOKUP($A2, 员工资料表!$B$2:$B$51, 员工资料表!$F$2:$F$51, "未找到")

D2

联系电话(源表G列)

=XLOOKUP($A2, 员工资料表!$B$2:$B$51, 员工资料表!$G$2:$G$51, "未找到")

E2

联系地址(源表H列)

=XLOOKUP($A2, 员工资料表!$B$2:$B$51, 员工资料表!$H$2:$H$51, "未找到")

🥈参数解读

XLOOKUP函数公式 =XLOOKUP($A2, 员工资料表!$B$2:$B$51, 员工资料表!$F$2:$F$51, "未找到")

第 1 参数 $A2:查找值,即‘员工信息检索”工作表中的姓名。

第 2 参数 员工资料表!$B$2:$B$51:查找区域,源表的姓名列。

第 3 参数 员工资料表!$F$2:$F$51:返回区域,直接返回对应行的基本工资。

第 4 参数 "未找到":若姓名不存在,则返回此提示文本,自带容错功能。

🥉XLOOKUP函数与 INDEX+MATCH 的对比

对比项

INDEX+MATCH

XLOOKUP

公式长度

嵌套两层,每个公式要写两段区域

一层直达,结构更短

容错

需用 IFERROR 包裹

第 4 参数直接指定兜底值

查找方向

只能在单一方向(行/列)内匹配

支持行、列、二维区域反向查找

可读性

"取第几个"思路偏底层

"在哪列找、取哪列"更符合直觉

兼容性

几乎所有 Excel/WPS 版本都支持

Office 365 / Excel 2021 / WPS 较新版本

第三种方法 FILTER函数

🥇 公式写法

FILTER 的定位和前两个函数方法完全不同——它是"筛选",不是"查找"。以当前场景同样能写出公式:以「员工信息检索」第 2 行(姓名=王五)为例,FILTER 函数的写法如下:

单元格

要取的字段

FILTER 公式

B2

员工ID(源表A列)

=FILTER(员工资料表!$A$2:$A$51, 员工资料表!$B$2:$B$51=$A2, "未找到")

C2

基本工资(源表F列)

=FILTER(员工资料表!$F$2:$F$51, 员工资料表!$B$2:$B$51=$A2, "未找到")

D2

联系电话(源表G列)

=FILTER(员工资料表!$G$2:$G$51, 员工资料表!$B$2:$B$51=$A2, "未找到")

E2

联系地址(源表H列)

=FILTER(员工资料表!$H$2:$H$51, 员工资料表!$B$2:$B$51=$A2, "未找到")

同样填充 B2:E20 即可。

🥈参数解读

参数

本例取值

含义

1. 返回数组

员工资料表!$F$2:$F$51

要取哪一列的值(和 XLOOKUP 第 3 参数同思路)

2. 条件

员工资料表!$B$2:$B$51=$A2

逐个比对姓名列,看哪些行等于当前行姓名,生成一串 TRUE/FALSE

3. 无匹配时

"未找到"

一条都没筛出来时显示该文本

🥉FILTER 与 XLOOKUP/INDEX+MATCH 的本质区别

这是关键——三者对"重复姓名"的处理完全不同:

场景

INDEX+MATCH

XLOOKUP

FILTER

姓名唯一(你当前的情况)

返回该员工资料

返回该员工资料

返回该员工资料

姓名重复(一人多条记录)

只返回第一个

只返回第一个

返回全部记录并向下溢出

小白看着对比表格,若有所思地点了点头,指着‘姓名重复”那一行问道:‘原来如此!也就是说,如果表里有重名的员工,用INDEX+MATCH和XLOOKUP都只能查到第一个人的信息,而FILTER能把所有同名的人都筛出来?”

我说:”是的。‘

小白问:”那我该怎么选呢?三种方法各有什么适用场景?‘

我回答说:‘问得好!我给你总结一下——记住这个口诀就行:”

  • 要稳、要发给所有人 → INDEX+MATCH(兼容性最好,当前表格用的这个)

  • 新版软件、想写法最简 → XLOOKUP(一对一查找首选)

  • 要查"一个条件对应多条记录"(如按部门、按工资批量筛人) → 换成 FILTER,这才是它的主场

小白恍然大悟:‘原来如此!那数据透视表也能做到吗?”

💡我回答:‘数据透视表本质是分组汇总工具,拿它做"一对一检索"属于绕道,效果和限制都与查找类公式差异很大。不过,如果你想快速统计各部门人数、汇总工资总额,用它反而更高效。两者各有各的用武之地,关键看你想要的是‘查一条’还是‘算一批’。”

小白问‘老哥,如果不使用函数公式,还有什么办法?”

我笑着回答:‘其实,这个员工信息检索任务,用WPS表格中内置的‘高级筛选’工具,不用开VIP也很香!”

‘高级筛选可以一次性把‘员工资料表”中符合条件的记录复制到指定区域,但和查找公式最大的不同是——它是一次性操作,源表数据变化后需要手动重新筛选,而函数公式会自动更新。下面我演示一下操作步骤,你跟着做一遍就会了。”

第一步,‘员工资料表’中确定好要检索的列(可略过),点击‘数据”选项卡,找到‘筛选”组按钮,点击打开‘高级筛选”对话框。

第二步,在‘列表区域”中选中‘员工资料表”的整个数据区域(含表头),在‘条件区域”中选中‘员工信息检索”中你预先设置好的条件区域(比如在空白处写上‘姓名”和要查找的名字),在‘复制到”中选中目标区域的第一个单元格,勾选‘选择不重复的记录”,点击‘确定”即可。

第二步操作完成后,需要先关闭‘高级筛选”对话框,然后确认筛选结果已正确复制到目标区域。若源表数据有更新,只需重新执行一次高级筛选即可。

第三步,在‘高级筛选”对话框中,确认‘列表区域”已正确显示员工资料表的完整数据区域,然后点击‘确定”完成筛选。

这样,符合条件的员工记录就会一次性复制到你指定的位置,而且因为勾选了‘不重复”,重名员工也只会保留一条,省心又高效。

小白看完演示,拍手叫好:‘原来高级筛选这么方便,不用写公式也能搞定!那它和函数公式比起来,到底哪个更好用呢?”

我回答说:‘这个问题问得好!我帮你从几个关键维度对比一下,你就清楚了。”

“首先是’更新方式‘:函数公式是‘活’的,源表数据一变,结果自动刷新;高级筛选是‘死‘的,源表更新后必须手动重新执行一遍,否则结果不会变。

”再次是’输出形态‘:函数公式支持跨工作表动态引用,查询结果可以嵌在报表中间,随查随改;高级筛选则是把记录‘复制‘到指定区域,适合一次性导出、批量提取。“

”最后是’适用场景‘:如果你要做一个长期使用的员工查询表,或者模板要发给别人反复填写,函数公式更靠谱;如果只是临时整理一批数据、导出一份名单,高级筛选又快又省事。“

小白听完连连点头:‘明白了!简单说就是‘长期用公式,临时用筛选’,对吧?”

我笑着竖起大拇指:‘没错,总结得很到位!公式虽好,但不是万能钥匙;筛选虽简,也要看场景。两者相辅相成,用对地方才是真本事。好了,这‘一鱼三吃’加‘高级筛选’的实战技巧都教给你了,回去自己多练几遍,遇到实际问题就知道该怎么选了。”

小白挠了挠头,笑着问:‘老哥,你这都讲到高级筛选了,那这算是‘一鱼四吃’了吧?前面三种函数方法加上这个筛选工具,简直是把这份员工表翻来覆去做了四道菜!”

我哈哈一笑:‘你这小子,还挺会总结!不过严格来说,高级筛选属于WPS表格自带的‘数据工具’,跟函数公式不是一个路子,咱们这叫‘一鱼三吃,外加一道凉菜’更贴切。”

小白也被逗乐了:‘哈哈,‘一鱼三吃’配‘凉菜’,这比喻真形象!那我今天算是把查数据的本事都学到手了。”

临商珑胜WPS知识库
@孙胜龙
浏览 277
2
11
分享
11 +1
14
2 +1
全部评论 14
 
亂雲飛渡
一鱼多吃,一题多解,为老师点赞
   广东省
举报
0
1
临商珑胜
临商珑胜Lv.2 潜力创作者

Lv.2 潜力创作者

在真正的技术大牛面前,实属雕虫小技,不值一提,发贴只是爱好,也是为了社区里WPS初学者降低学习成本,
·
举报
0
0
 
⁽⁽ଘᴄᴏɪsོɪɴɪଓ⁾⁾
看封面本以为是闲聊,结果……大佬牛逼👍
举报
1
0
 
唯风
原以为VLOOKUP已经天下无敌,没想到XLOOKUP比它还要勇猛,这是WPS独有函数嘛
举报
1
1
临商珑胜
临商珑胜Lv.2 潜力创作者

Lv.2 潜力创作者

不是,XLOOKUP函数首发于微软平台,仅在 Office 365 和 Excel 2021 及以上版本中可用。
·
举报
1
0
 
无界
无界 Lv.2 潜力创作者

Lv.2 潜力创作者

太牛逼了,点赞
   山东省
举报
1
2
临商珑胜
临商珑胜Lv.2 潜力创作者

Lv.2 潜力创作者

感谢老师支持,一鱼三吃,还有蒜泥拌豆撅子侍候您!
·
举报
1
0
 
HC.旋
HC.旋 WPS资深用户Lv.3 优质创作者WPS寻令官KVP

Lv.3 优质创作者

点赞支持,今天跟着老师学有鱼吃
   福建省
举报
2
3
临商珑胜
临商珑胜Lv.2 潜力创作者

Lv.2 潜力创作者

本周休假,有空与各位大牛交流,真的很开心!
·
举报
1
0
 
帅羊帅
帅羊帅 Lv.1 新人创作者

Lv.1 新人创作者

厉害,点赞点赞
举报
2
1
临商珑胜
临商珑胜Lv.2 潜力创作者

Lv.2 潜力创作者

抛砖引玉!能得到技术大牛们的认可,很高兴,感觉有时间发贴比吸烟喝酒强太多了。
·
举报
1
0