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实现,步骤如下:
- 按下
Alt + F11打开VBA编辑器; - 右键点击工作簿,选择「插入」→「模块」;
- 粘贴以下代码:
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




