Excel 如何从一个大表里,根据姓名查找到对应的手机号?

发布于:2025-07-02 ⋅ 阅读:(41) ⋅ 点赞:(0)

要解决这个问题,我们有三个“武器”可以选择,它们分别是:

  1. VLOOKUP:经典、普及率最高的“上古神器”。
  2. XLOOKUP:目前、更强大、更推荐的“王者之剑”。
  3. INDEX + MATCH:灵活、高手爱用的“瑞士军刀”组合。

对于新手和绝大多数用户来说,直接学习 XLOOKUP 是最佳选择。但我也会介绍VLOOKUP,因为你在看别人的旧表格时一定会遇到它。


方案一:XLOOKUP (推荐!新一代查找函数)

XLOOKUP是Microsoft 365和Excel 2021及更高版本中新增的函数,它解决了VLOOKUP的所有痛点,更简单、更强大。

语法:
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found])

大白话翻译:
=XLOOKUP(你要找什么, 在哪一列找, 从哪一列返回结果, [如果找不到怎么办])

场景示例:
我们有一个“员工信息表”(Sheet1),现在需要在另一个表(Sheet2)中,根据姓名查找手机号。

Sheet1: 员工信息表 (你的“大表”)

A B C
1 工号 姓名 手机号
2 1001 张三 138xxxxxxxx
3 1002 李四 139xxxxxxxx
4 1003 王五 137xxxxxxxx

Sheet2: 待查询表

A B
1 姓名 手机号
2 王五
3 赵六

操作步骤:

  1. 在Sheet2的B2单元格中,开始输入公式。
  2. 输入 =XLOOKUP(
  3. 你要找什么? -> 点击A2单元格(也就是“王五”)。
  4. 输入逗号 ,
  5. 在哪一列找? -> 切换到Sheet1,用鼠标选中整个B列(姓名列)。
  6. 输入逗号 ,
  7. 从哪一列返回结果? -> 在Sheet1,用鼠标选中整个C列(手机号列)。
  8. 输入逗号 , (可选,但推荐)。
  9. 如果找不到怎么办? -> 输入 "未找到" (这样如果查不到,会显示“未找到”,而不是丑陋的#N/A)。
  10. 输入右括号 ) 并按回车。

完整公式如下:
=XLOOKUP(A2, Sheet1!B:B, Sheet1!C:C, "未找到")

结果:

  • B2单元格会立刻显示出王五的手机号 137xxxxxxxx
  • 将B2的公式向下拖动到B3,因为找不到“赵六”,B3会显示我们预设的 未找到

XLOOKUP的巨大优势:

  • 简单直观:三个核心参数,逻辑清晰。
  • 列序无关:要查找的列不必须在返回结果列的左边。你可以从右往左查。
  • 性能更好:通常比VLOOKUP快。
  • 自带错误处理:第四个参数可以直接定义找不到时的返回值。

方案二:VLOOKUP (经典,但有局限)

VLOOKUP是过去二十年的霸主,几乎所有老用户都用它。你需要了解它的工作原理,但如果你的Excel版本支持XLOOKUP,请优先使用XLOOKUP

语法:
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

大白话翻译:
=VLOOKUP(你要找什么, 在哪个区域找, 从这个区域的第几列返回结果, [要精确匹配还是模糊匹配])

核心限制:VLOOKUP只能从查找区域的第一列开始查找,并返回其右侧列的数据。

操作步骤(使用同样的场景):

  1. 在Sheet2的B2单元格中,输入 =VLOOKUP(
  2. 你要找什么? -> 点击A2单元格(“王五”)。
  3. 输入逗号 ,
  4. 在哪个区域找? -> 切换到Sheet1,用鼠标从“姓名”列开始,选中到“手机号”列(即选中B:C列区域)。注意:必须从包含查找值的列开始选!
  5. 输入逗号 ,
  6. 从这个区域的第几列返回结果? -> 在我们选择的B:C区域中,“姓名”是第1列,“手机号”是第2列。所以我们输入数字 2
  7. 输入逗号 ,
  8. 要精确匹配还是模糊匹配? -> 输入 FALSE0,代表精确匹配。这是99%的情况下你需要的选项。
  9. 输入右括号 ) 并按回车。

完整公式如下:
=VLOOKUP(A2, Sheet1!B:C, 2, FALSE)

VLOOKUP的痛点:

  • 查找列必须在最左边:这是它最大的问题。如果想根据手机号查姓名,VLOOKUP就无能为力了(除非你调整数据表的列顺序)。
  • 返回列号容易出错:当你的表有几十列时,去数“这是第几列”非常痛苦,而且如果在中间插入或删除了列,这个数字就错了,公式会返回错误结果。
  • 错误处理麻烦:如果找不到,会返回#N/A,你需要用IFERROR函数再嵌套一层才能美化结果,如=IFERROR(VLOOKUP(...), "未找到")

方案三:INDEX + MATCH (高手组合)

这个组合功能强大且灵活,是XLOOKUP出现前高手的首选,它完美解决了VLOOKUP的所有痛点。

  • MATCH函数:负责找位置=MATCH(你要找什么, 在哪一列找, 0) -> 返回要找的值在该列的第几行。
  • INDEX函数:负责取数据=INDEX(从哪一列取数, 第几行) -> 返回该列指定行的数据。

组合公式:
=INDEX(要返回结果的列, MATCH(你要找的值, 要查找的列, 0))

操作步骤(使用同样的场景):

  1. 在Sheet2的B2单元格输入 =INDEX(
  2. 从哪一列取数? -> 切换到Sheet1,选中C列(手机号列)。
  3. 输入逗号 ,
  4. 输入 MATCH(
  5. 你要找什么? -> 点击Sheet2的A2单元格(“王五”)。
  6. 输入逗号 ,
  7. 在哪一列找? -> 切换到Sheet1,选中B列(姓名列)。
  8. 输入逗号 ,,然后输入0(代表精确匹配)。
  9. 输入两个右括号 )) 并按回车。

完整公式如下:
=INDEX(Sheet1!C:C, MATCH(A2, Sheet1!B:B, 0))

这个组合虽然看起来复杂,但逻辑拆分后很清晰,而且和XLOOKUP一样强大,没有列顺序的限制。


总结与推荐

特性 XLOOKUP (推荐) VLOOKUP (了解即可) INDEX + MATCH (高手备选)
易用性 ⭐⭐⭐⭐⭐ (非常简单) ⭐⭐⭐ (有点绕) ⭐⭐ (需要理解两个函数)
功能强度 ⭐⭐⭐⭐⭐ (强大) ⭐⭐ (有限制) ⭐⭐⭐⭐⭐ (强大)
列序要求 查找列必须在最左
错误处理 自带 需嵌套IFERROR 需嵌套IFERROR
适用版本 M365, Excel 2021+ 所有版本 所有版本

建议:

  1. 首选 XLOOKUP:如果你的Excel版本支持,直接学它,忘了VLOOKUPINDEX+MATCH吧。它能解决你99.9%的查找问题。
  2. 了解 VLOOKUP:如果你的工作环境中有旧版Excel,或者你需要维护旧表格,花10分钟了解VLOOKUP的用法和限制就足够了。
  3. 备用 INDEX+MATCH:如果你必须在旧版Excel上解决“从右往左查”的问题,那么INDEX+MATCH就是你的不二之选。