Excel乱序机构名单匹配可用领域时公式返回结果错误求助
问题根因
原公式=IF(ISNUMBER(MATCH(C$1,$J2:$O2,0)),"Found","Not Found")默认当前行的机构和领域映射表的当前行是同一家,一旦两份列表排序不一致,引用的领域范围和当前机构完全不对应,判定结果自然全部错误。核心要解决的是错位行的机构位置定位问题,再做领域匹配即可。
可直接套用的公式方案
全版本Excel通用方案(无版本限制)
把原公式替换为以下内容,按实际单元格位置调整引用后,直接下拉+右拉填充即可:
=IF(ISNUMBER(MATCH(C$1,INDEX($J:$O,MATCH($B2,$I:$I,0),0),0)),"Found","Not Found")
公式执行逻辑:
- 用
MATCH($B2,$I:$I,0)在领域映射表的机构名列(示例为I列),精准定位当前待判定机构所在的行号,彻底解决排序不对应的问题 - 用
INDEX($J:$O,上一步得到的行号,0)直接取出该机构对应的整行可用领域范围 - 沿用原本的MATCH判断逻辑,检查当前列表头的领域是否存在于该机构的领域范围内,存在返回
Found,不存在返回Not Found
高版本简化方案(适用于Excel 365/2021及以上、WPS最新版)
如果你的软件支持XLOOKUP函数,可以用更简洁的写法,逻辑和通用方案完全一致:
=IF(ISNUMBER(MATCH(C$1,XLOOKUP($B2,$I:$I,$J:$O),0)),"Found","Not Found")
引用调整注意事项
- 公式中
$B2:替换为待判定列表里存放机构名称的单元格,注意列要加$锁死,行不要锁,保证右拉时始终取当前行的机构名 - 公式中
$I:$I:替换为领域映射表里存放机构名称的整列 - 公式中
$J:$O:替换为领域映射表里存放各机构对应可用领域的整列范围 - 公式中
C$1:替换为待判定列表里存放领域名称的表头单元格,注意行要加$锁死,列不要锁,保证下拉时始终取当前列的领域名 - 所有
$符号不要随意删除,否则填充公式时会出现引用错位,导致结果错误
内容的提问来源于stack exchange,提问作者user16239103
相关产品推荐
相关产品推荐

