当前位置: 首页 > news >正文

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

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

  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: 员工信息表 (你的“大表”)

ABC
1工号姓名手机号
21001张三138xxxxxxxx
31002李四139xxxxxxxx
41003王五137xxxxxxxx

Sheet2: 待查询表

AB
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就是你的不二之选。
http://www.dtcms.com/a/264206.html

相关文章:

  • 【1.5 漫画TiDB分布式数据库】
  • python+uniapp基于微信小程序的流浪动物救助领养系统nodejs+java
  • 蓝牙音频传输协议深度解析:A2DP、HFP、AVRCP 对比与面试核心考点
  • Langgraph 学习教程
  • 日事清驾驶舱模式上线:实时数据更新+项目管理+数据可视化,提升决策效率​
  • 5-TF·IDF关键词算法
  • 强化学习系列--从数值出发,解读 DPO 训练背后的偏好优化逻辑
  • Navicat Premium x TiDB 社区体验活动 | 赢 Navicat 正版授权+限量周边+TiDB 社区积分
  • 第8章路由协议,RIP、OSPF、BGP、IS-IS
  • RabbitMQ简单消息监听
  • 基于开源AI大模型AI智能名片S2B2C商城小程序的流量转化与价值沉淀研究
  • linux魔术字定位踩内存总结
  • 振荡电路Multisim电路仿真实验汇总——硬件工程师笔记
  • MySQL 常用命令大全
  • 0.96寸OLED显示屏 江协科技学习笔记(36个知识点)
  • swing音频输入
  • sqlmap学习ing(2.[第一章 web入门]SQL注入-2(报错,时间,布尔))
  • jQuery 安装使用教程
  • MySQL数据一键同步至ClickHouse数据库
  • 前端第二节(Vue)
  • 橙心同步助手2.0.1版本更新
  • Instruct-GPT中强化学习(RL)训练部分详解
  • Android实现仿iOS风格滚动时间选择器
  • 零信任安全管理系统介绍
  • 新版本 Spring Data Jpa + QueryDSL 使用教程
  • Java基础 集合框架 抽象类 AbstractList
  • Bootstrap 安装使用教程
  • 三极管是NPN还是PNP
  • CppCon 2018 学习:EMULATING THE NINTENDO 3DS
  • 以下是 Kafka 不同认证方式的配置示例,结合前面的单表设计方案,展示如何为每种认证方式填充配置表