Excel中查找文本值所有出现行号的方法(含多次匹配需求)
嘿,别慌!完全不熟悉Excel也没关系,我一步步教你怎么找到dll_ctrl0第1、第2甚至第N次出现的行号~
通用方法(适合所有Excel版本)
假设你的目标文本dll_ctrl0在random_sheet_name工作表的A列(如果是其他列,把公式里的A:A换成对应列标就行):
- 第1次出现的行号:你已经用对了公式,就是:
=MATCH("dll_ctrl0",'random_sheet_name'!A:A,0) - 第2次出现的行号:用这个数组公式,输入完后记得按
Ctrl+Shift+Enter触发(Excel 365/2021直接按回车就行):=SMALL(IF('random_sheet_name'!A:A="dll_ctrl0",ROW('random_sheet_name'!A:A)),2) - 第N次出现的行号:把公式里的
2换成你要找的次数(比如第3次就改成3):=SMALL(IF('random_sheet_name'!A:A="dll_ctrl0",ROW('random_sheet_name'!A:A)),N)
公式逻辑简单解释(怕你好奇😉)
IF('random_sheet_name'!A:A="dll_ctrl0",ROW('random_sheet_name'!A:A)):扫一遍A列所有单元格,碰到dll_ctrl0就返回它的行号,没碰到就返回错误值。SMALL(...,N):从上面得到的所有有效行号里,挑出第N小的那个——也就是第N次出现的位置。
Excel 365/2021专属简化方法
如果用的是新版Excel,有更省心的方式,甚至能一次性拿到所有匹配的行号:
- 一次性获取所有出现的行号:输入这个公式,Excel会自动“溢出”显示所有匹配的行号,不用手动一个个改次数:
=XMATCH("dll_ctrl0",'random_sheet_name'!A:A,0,SEQUENCE(COUNTIF('random_sheet_name'!A:A,"dll_ctrl0"))) - 单独找第N次出现:直接用
XMATCH的第4参数指定次数就行,比如第2次:=XMATCH("dll_ctrl0",'random_sheet_name'!A:A,0,2)
新手友好小提示
- 如果目标文本不在A列,比如在B列,把所有公式里的
A:A替换成B:B就行。 - 如果找的次数超过了实际出现的次数(比如总共只有2个匹配,你找第3次),公式会返回
#NUM!错误。可以用IFERROR包裹公式,让它显示更友好的内容,比如:=IFERROR(SMALL(IF('random_sheet_name'!A:A="dll_ctrl0",ROW('random_sheet_name'!A:A)),3),"没有找到第3次出现")
内容的提问来源于stack exchange,提问作者StarLlama
相关产品推荐
相关产品推荐

