Excel多条件匹配行号问题:基于ID与职位返回对应行号
多条件匹配获取多行号解决方案
问题分析
你当前的公式存在两个核心问题:
OFFSET('info sheet'!A1;B1;0;250;1)中的B1是固定单元格值,并非动态行偏移量,导致引用的A列范围不符合预期;MATCH函数仅能返回第一个匹配项的位置,无法批量获取所有符合双条件的行号。
具体解决方案
方案1:新版Excel(支持动态数组,如365/2021)
直接使用 FILTER 函数批量返回所有匹配行号,公式无需下拉自动溢出结果:
=FILTER(ROW('info sheet'!A1:A250),('info sheet'!A1:A250=165)*('info sheet'!B1:B250="technician"))
逻辑:用ROW('info sheet'!A1:A250)生成所有行号,通过('info sheet'!A1:A250=165)*('info sheet'!B1:B250="technician")筛选出同时满足ID=165、职位=technician的行,最终返回对应行号。
方案2:旧版Excel(需数组输入)
使用 INDEX+SMALL+IF 组合公式,在目标单元格输入后按 Ctrl+Shift+Enter 确认,下拉公式直到出现#NUM!停止:
=INDEX(ROW('info sheet'!A1:A250),SMALL(IF(('info sheet'!A1:A250=165)*('info sheet'!B1:B250="technician"),ROW('info sheet'!A1:A250)-ROW('info sheet'!A1)+1),ROW(A1)))
逻辑:
IF函数生成符合双条件的行号相对位置,不符合条件则返回FALSE;SMALL依次提取第1、2、3...个符合条件的相对位置;INDEX根据相对位置返回对应的实际行号;ROW(A1)随下拉自动递增,实现依次获取后续匹配行号。
内容的提问来源于stack exchange,提问作者TiesA
相关产品推荐
相关产品推荐

