CASE 1
基础精确查找
★★★要求:根据员工编号查询姓名fx公式示例
=XLOOKUP("E003",$D$8:$D$13,$E$8:$E$13)练习题公式(E003)
=XLOOKUP(F17,$D$8:$D$13,$E$8:$E$13)
解释:XLOOKUP 默认使用精确匹配,不需要额外填写 FALSE。
=XLOOKUP(查找值, 查找区域, 返回区域, [未找到值], [匹配模式], [搜索模式])
| # | 参数 | 要求 | 怎么理解 / 怎么填 |
|---|---|---|---|
| 1 | 查找值 | 必填 | 要查找的内容,可以是编号、名称、日期或单元格引用。 |
| 2 | 查找区域 | 必填 | 用于寻找查找值的那一列或那一行。 |
| 3 | 返回区域 | 必填 | 找到匹配项后,需要返回结果的区域。 |
| 4 | 未找到值 | 选填 | 找不到匹配项时显示的备用内容;例如“未找到”或空白。 |
| 5 | 匹配模式 | 选填 | 控制匹配时是否区分大小写、是否按通配符或正则等方式判断。 |
| 6 | 搜索模式 | 选填 | 控制负数等特殊情况的取整方式。-1代表从下往上查找 |
① 找到数据区域
先确认条件列和结果列在哪,注意固定区域加 $
② 按顺序填参数
依次填 查找值、查找区域、返回区域
③ 回车并向下填充
双击填充柄,整列公式自动套用
=XLOOKUP("E003",$D$8:$D$13,$E$8:$E$13)=XLOOKUP(F17,$D$8:$D$13,$E$8:$E$13)
解释:XLOOKUP 默认使用精确匹配,不需要额外填写 FALSE。
=XLOOKUP("钱七",$E$8:$E$13,$D$8:$D$13)=XLOOKUP(F25,$E$8:$E$13,$D$8:$D$13)
解释:查找区域和返回区域相互独立,因此可以直接从右侧姓名列向左返回编号。
=XLOOKUP("E999",$D$8:$D$13,$E$8:$E$13,"未找到")=XLOOKUP(F33,$D$8:$D$13,$E$8:$E$13,"未找到")
解释:第四参数可以直接设置未找到提示,不需要再嵌套 IFERROR。
=XLOOKUP("E003",$D$8:$D$13,$E$8:$G$13,"未找到")=XLOOKUP(F41,$D$8:$D$13,$E$8:$G$13,"未找到")
解释:返回区域可以包含多列,动态数组会把对应记录一次性向右溢出。
=XLOOKUP(1,($F$8:$F$13="技术部")*($G$8:$G$13="深圳"),$E$8:$E$13,"未找到")
解释:两个条件同时成立时乘积为1,XLOOKUP 查找1即可返回对应记录。
=XLOOKUP("*七*",$E$8:$E$13,$F$8:$F$13,"未找到",2)=XLOOKUP(F57,$E$8:$E$13,$F$8:$F$13,"未找到",2)
解释:第 5 个参数写 2 时,XLOOKUP 会启用通配符匹配。公式中的星号 * 代表任意多个字符,所以可以查找姓名中包含“七”的记录。
=XLOOKUP("技术部",$F$8:$F$13,$E$8:$E$13,"未找到",0,-1)=XLOOKUP(F65,$F$8:$F$13,$E$8:$E$13,"未找到",0,-1)
解释:搜索模式-1会从下向上查找,因此可以返回最后一次出现的匹配记录。
上面案例里的 员工编号、姓名 等列,就来自这张表
| 行 | 员工编号 | 姓名 | 部门 | 城市 | 月薪 | 绩效等级 |
|---|---|---|---|---|---|---|
| 8 | E001 | 张三 | 技术部 | 北京 | 15,000 | A |
| 9 | E002 | 李四 | 市场部 | 上海 | 18,000 | B |
| 10 | E003 | 王五 | 技术部 | 深圳 | 22,000 | A |
| 11 | E004 | 赵六 | 财务部 | 广州 | 12,000 | C |
| 12 | E005 | 钱七 | 市场部 | 杭州 | 10,000 | B |
| 13 | E006 | 孙八 | 技术部 | 北京 | 28,000 | A |