You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel二维数组存在重复值时,如何获取首个匹配值的单元格地址?

解决Excel二维数组中首个匹配值的单元格地址获取问题

当数组存在重复值时,你原来用的SUMPRODUCT公式会把所有匹配单元格的行/列号相加,自然得不到首个匹配的位置。下面分两种Excel版本给出解决方案:

一、Excel 365/2021(支持动态数组)

这类版本可以直接用XLOOKUP函数精准定位首个匹配项,操作更简单:

  1. 获取首个匹配单元格的行号:
=ROW(XLOOKUP(W35, AF26:AK30, AF26:AK30, "", 0, 1))
  1. 获取首个匹配单元格的列号:
=COLUMN(XLOOKUP(W35, AF26:AK30, AF26:AK30, "", 0, 1))
  1. 直接获取完整单元格地址:
=ADDRESS(ROW(XLOOKUP(W35, AF26:AK30, AF26:AK30, "", 0, 1)), COLUMN(XLOOKUP(W35, AF26:AK30, AF26:AK30, "", 0, 1)))

注:XLOOKUP的最后一个参数1指定了匹配顺序为「从上到下、从左到右」,正好符合你对“首个”的定义。

二、旧版Excel(不支持动态数组,如2019及更早)

这类版本需要用数组公式结合MIN函数,取匹配单元格中最小的行/列号(也就是第一个出现的位置):

  1. 获取首个匹配单元格的行号(输入公式后按Ctrl+Shift+Enter确认):
=MIN(IF(AF26:AK30=W35, ROW(AF26:AK30), ""))
  1. 获取首个匹配单元格的列号(同样按Ctrl+Shift+Enter确认):
=MIN(IF(AF26:AK30=W35, COLUMN(AF26:AK30), ""))
  1. 直接获取完整单元格地址(按Ctrl+Shift+Enter确认):
=ADDRESS(MIN(IF(AF26:AK30=W35, ROW(AF26:AK30), "")), MIN(IF(AF26:AK30=W35, COLUMN(AF26:AK30), "")))

注:IF函数会筛选出所有匹配单元格的行/列号,MIN则取其中最小的那个,对应“首个”出现的位置。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:02:30