Excel公式:查找包含指定单个字符的首个单元格地址
查找包含指定字符的首个单元格地址公式方案
问题原因
将原公式中的MAX替换为MIN后返回0,是因为不匹配条件的单元格会生成0(--(ISNUMBER(SEARCH(...)))为0,乘以行号后仍为0),MIN会直接取到这个0值,导致结果错误。
可用公式方案
以下公式适用于在$B$9:$B$500区域中,查找包含指定字符的首个单元格地址,替换公式中的目标字符即可适配不同字母:
方案1:SUMPRODUCT数组公式
需按Ctrl+Shift+Enter完成输入(Excel 365/2021可直接回车):
- 包含"H"的首个单元格地址:
="B"&SUMPRODUCT(MIN(IF(ISNUMBER(SEARCH("H",$B$9:$B$500)),ROW($B$9:$B$500),""))) - 包含"A"的首个单元格地址:
="B"&SUMPRODUCT(MIN(IF(ISNUMBER(SEARCH("A",$B$9:$B$500)),ROW($B$9:$B$500),""))) - 包含"B"的首个单元格地址:
="B"&SUMPRODUCT(MIN(IF(ISNUMBER(SEARCH("B",$B$9:$B$500)),ROW($B$9:$B$500),""))) - 包含"C"的首个单元格地址:
="B"&SUMPRODUCT(MIN(IF(ISNUMBER(SEARCH("C",$B$9:$B$500)),ROW($B$9:$B$500),""))) - 包含"T"的首个单元格地址:
="B"&SUMPRODUCT(MIN(IF(ISNUMBER(SEARCH("T",$B$9:$B$500)),ROW($B$9:$B$500),"")))
方案2:INDEX+MATCH数组公式
逻辑更直观,同样需按Ctrl+Shift+Enter输入(新版Excel可直接回车):
- 包含"H"的首个单元格地址:
="B"&INDEX(ROW($B$9:$B$500),MATCH(TRUE,ISNUMBER(SEARCH("H",$B$9:$B$500)),0))
公式说明
SEARCH("目标字符", 区域):忽略大小写查找单元格中是否包含目标字符,返回匹配位置或错误值;ISNUMBER(...):将查找结果转换为TRUE(包含目标字符)或FALSE(不包含);IF(...):仅保留包含目标字符的单元格行号,不匹配的返回空值,避免干扰MIN的计算;MIN/MATCH:定位最小的匹配行号(即首个符合条件的单元格行),最终拼接列名"B"得到完整单元格地址。
内容的提问来源于stack exchange,提问作者Seb358
相关产品推荐
相关产品推荐

