Excel中三种数据匹配方法

我想做 excel 的匹配, 如果A2 的内容是 J 列中的一行的具体的一个值相等, 那么久去 J 列那一行后面的对应的值.

现在的需求是获取对应 account_id 的名字.

当然了真实的需求是几百个...不然就不需要自动化了.

这个问题是 Excel 中非常常见的数据查找和匹配需求。您可以使用几个不同的函数来实现,其中最常用的是 VLOOKUP,更灵活的是 INDEX + MATCH 组合,而最新版本的 Excel 则推荐使用 XLOOKUP。

下面我将为您详细介绍这三种方法。

假设您的数据结构如下:

  • 您想在 A2 单元格输入一个值。

  • 您想在 J 列中查找这个值。

  • 如果找到了,您想返回同一行 K 列(或其他列)的值。

  • 您想把公式写在比如 B2 单元格里,来显示匹配到的结果。


方法一:使用 VLOOKUP 函数 (最经典)

VLOOKUP 是专门为垂直查找设计的函数。它的意思是"Vertical Lookup"(垂直查找)。

公式结构: =VLOOKUP(要查找的值, 查找范围, 返回范围中的第几列, 是否精确匹配)

具体操作: 在 B2 单元格中输入以下公式:

Excel

复制代码
=VLOOKUP(A2, J:K, 2, FALSE)

公式解释:

  • A2: 这是您要查找的值。

  • J:K: 这是查找的范围。非常重要 :VLOOKUP 要求查找的列(这里是 J 列)必须是这个范围的 第一列 。这个范围需要包含您想返回的 K 列。如果您想返回 L 列的值,范围就需要是 J:L。

  • 2: 这表示您想返回查找范围中的第二列的值。因为我们的范围是 J:K,J 是第 1 列,K 是第 2 列。如果您想返回 L 列的值(范围设置为 J:L),这里就要写 3。

  • FALSE: 这代表进行 精确匹配。也就是说,只有 J 列的值和 A2 的值完全一样时,才会返回结果。这几乎是所有情况下您都应该使用的选项。


方法二:使用 INDEX 和 MATCH 组合 (更灵活)

这个组合比 VLOOKUP 更强大,因为它没有"查找列必须是第一列"的限制,而且效率更高。

公式结构: =INDEX(要返回值的列, MATCH(要查找的值, 要查找的列, 0))

具体操作: 在 B2 单元格中输入以下公式:

Excel

复制代码
=INDEX(K:K, MATCH(A2, J:J, 0))

公式解释: 这个公式分两步工作:

  1. MATCH(A2, J:J, 0): 这部分先执行。它会在 J 列中精确查找 A2 的值,并返回匹配项所在的 行号 。0 代表精确匹配。

  2. INDEX(K:K, ...): INDEX 函数会根据 MATCH 返回的行号,去 K 列中找到并返回对应行的那个单元格的值。

如果您想返回 L 列的值,只需将 K:K 改为 L:L 即可,非常直观。


方法三:使用 XLOOKUP 函数 (最新、最推荐)

如果您使用的是 Microsoft 365 或 Excel 2021 及更高版本,强烈推荐使用 XLOOKUP。它整合了 VLOOKUP 和 INDEX/MATCH 的优点,语法更简单。

公式结构: =XLOOKUP(要查找的值, 查找的列, 要返回的列)

具体操作: 在 B2 单元格中输入以下公式:

Excel

复制代码
=XLOOKUP(A2, J:J, K:K)

公式解释:

  • A2: 要查找的值。

  • J:J: 在哪一列查找。

  • K:K: 找到后,从哪一列返回相应的值。

XLOOKUP 默认就是精确匹配,语法非常清晰。


常见问题与优化

1. 如何处理找不到的情况? 如果 J 列中没有 A2 的值,上面的公式会返回 #N/A 错误。为了让表格更美观,您可以用 IFERROR 函数来处理这个错误。

  • 对于 VLOOKUP:

    Excel

    复制代码
    =IFERROR(VLOOKUP(A2, J:K, 2, FALSE), "未找到")
  • 对于 INDEX/MATCH:

    Excel

    复制代码
    =IFERROR(INDEX(K:K, MATCH(A2, J:J, 0)), "未找到")
  • XLOOKUP 自带错误处理功能,更简单:

    Excel

    复制代码
    =XLOOKUP(A2, J:J, K:K, "未找到")

    您可以将 "未找到" 替换成空字符串 "" 让单元格留空。

2. 向下拖动公式 如果您想将这个公式应用到 A3, A4, A5...,需要确保查找范围是固定的。这时需要使用绝对引用 $。

  • VLOOKUP: =VLOOKUP(A2, $J:$K, 2, FALSE)

  • INDEX/MATCH: =INDEX($K:$K, MATCH(A2, $J:$J, 0))

  • XLOOKUP: =XLOOKUP(A2, $J:$J, $K:$K)

这样,当您向下拖动填充柄时,A2 会变成 A3, A4...,但查找范围 $J:$J 和 $K:$K 会保持不变。

相关推荐
ailitsoft2 天前
库存管理系统如何记录跨门店调拨后的收货差异?
excel·零售·软件需求
百事牛科技3 天前
Excel的三种密码:防看、防存、防乱改,各管各的
windows·excel
用户298698530143 天前
React 前端将 Excel 工作表导出为图片的技术实践
javascript·react.js·excel
用户0332126663674 天前
使用 Python 在 Excel 文档中添加水印
python·excel
科技新资讯6 天前
AI如何批量处理Excel文件? 从数据合并、清洗到自动生成报表,看看 AI Agent 怎么完成任务
大数据·人工智能·excel
用户0332126663676 天前
使用 Python 在 Excel 中添加与删除筛选器
python·excel
xurime6 天前
Excelize 开源基础库发布 2.11.1 版本更新
数据分析·excel·开源软件·excelize·gitcode
梦想出海-Phoebe6 天前
Gemini新增文件编辑功能:PDF、Word、Excel处理体验分享
pdf·word·excel
Data-Miner7 天前
AI和Excel怎么结合才能真提效
人工智能·excel
taller_20008 天前
【012】数据类型入门: Excel 数据到 Python 值的转换
python·excel·pie·py