求可提取数值单元格行号的无空值可重复使用公式
提取数值单元格行号的实用公式
针对从一列中提取所有数值所在行号、仅保留有效结果且公式可重复使用的需求,分两种Excel版本给出方案:
支持动态数组的Excel 365/2021版本
直接使用FILTER函数实现自动筛选溢出,无需手动下拉操作:
=FILTER(ROW(A:A),ISNUMBER(A:A)*(A:A<>""))
- 逻辑说明:
ROW(A:A)获取A列全部行号;ISNUMBER(A:A)判断单元格是否为数值,*(A:A<>"")排除空单元格;FILTER自动筛选出符合条件的行号并返回结果。
旧版Excel(无动态数组功能)
采用INDEX+SMALL组合的数组公式,输入后按Ctrl+Shift+Enter确认,再下拉填充:
=IFERROR(SMALL(IF(ISNUMBER(A:A)*(A:A<>""),ROW(A:A)),ROW(A1)),"")
- 逻辑说明:
IF(ISNUMBER(A:A)*(A:A<>""),ROW(A:A))生成仅包含数值行号的数组;SMALL按顺序提取第N个行号,ROW(A1)随下拉自动递增;IFERROR处理超出有效行号范围的情况,返回空值避免错误。
示例验证
针对你提供的源数据(A1-A6依次为Foobar、Foobar、123、123、Foobar、123),上述公式均会返回3、4、6的结果,完全匹配期望输出。
内容的提问来源于stack exchange,提问作者Ambidex
相关产品推荐
相关产品推荐

