You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Excel表格中查找值的方法及按值查找ID的公式咨询

Excel查找值与反向查找ID的实用解决方案

一、如何在Excel表格中查找值?

根据不同的使用场景,有两种高效的方式:

  • 快速定位查找:如果只是临时找某个值的位置,直接用快捷键 Ctrl + F(Windows)/ Cmd + F(Mac),输入目标值后点击「查找全部」,就能看到所有匹配单元格的具体位置,双击结果还能直接跳转过去,操作超便捷。
  • 公式化动态查找:如果需要在计算中引用查找结果,推荐用这些函数:
    • MATCH:返回目标值在指定区域中的位置索引,比如 =MATCH("b", B2:B4, 0) 会返回2;
    • VLOOKUP:从左向右查找并返回对应列内容,不过它要求查找列在区域最左侧,灵活性稍弱;
    • XLOOKUP(Excel 365/2021及以上版本):新一代查找函数,支持任意方向查找,还能自定义无匹配时的返回值,用起来更顺手。

二、通过值查找对应的ID,有没有可用公式?

当然有!针对你给出的示例(ID列A2:A4,值列B2:B4,要找"b"对应的ID2),这里给你几种实用方案:

1. 最简洁的XLOOKUP(推荐)

如果你用的是Excel 365或2021版本,直接用这个公式即可:

=XLOOKUP("b", B2:B4, A2:A4)

要是担心找不到匹配值,还可以加个默认返回值:

=XLOOKUP("b", B2:B4, A2:A4, "未找到匹配ID")

2. 兼容全版本的INDEX + MATCH组合

如果你的Excel版本较旧,不支持XLOOKUP,这个经典组合绝对靠谱:

=INDEX(A2:A4, MATCH("b", B2:B4, 0))

原理很简单:MATCH先找到"b"在B列的位置(第2位),再用INDEX从A列对应位置取出ID。

3. 自定义函数Findinarray(如你示例中的用法)

你提到的Findinarray是自定义函数,需要通过VBA实现,步骤如下:

  1. 按下 Alt + F11 打开VBA编辑器;
  2. 右键点击工作簿,选择「插入」→「模块」;
  3. 粘贴以下代码:
Function Findinarray(lookupVal As Variant, searchRange As Range, returnRange As Range) As Variant
    Dim cell As Range
    ' 遍历查找区域匹配目标值
    For Each cell In searchRange
        If cell.Value = lookupVal Then
            ' 返回对应位置的ID
            Findinarray = returnRange.Cells(cell.Row - searchRange.Row + 1).Value
            Exit Function
        End If
    Next cell
    ' 无匹配时返回提示内容
    Findinarray = "无匹配ID"
End Function

保存后,回到工作表就能像内置函数一样使用 =Findinarray("b", B2:B4, A2:A4) 啦。

内容的提问来源于stack exchange,提问作者olszamix

火山引擎 最新活动