Excel旧版本替代Filter函数的实现方案咨询
旧版Excel替代FILTER函数的解决方案
旧版Excel(2019及更早版本)没有内置FILTER函数,用INDEX+SMALL+IF的数组公式组合完全可以实现相同的筛选提取效果,以下是具体场景的写法:
单列提取符合条件的数据
假设你原本的FILTER公式是提取某列中满足条件的内容(比如=FILTER(数据列, 条件列="指定值")),替代公式如下:
=INDEX(数据列, SMALL(IF(条件列="指定值", ROW(条件列)), ROWS($1:1)))
- 替换公式里的
数据列为你要提取结果的列,条件列="指定值"为你的筛选规则 - 输入公式后必须按Ctrl+Shift+Enter触发数组运算(旧版Excel的要求),然后下拉公式直到出现
#NUM!,此时所有符合条件的数据已提取完毕
多列批量提取符合条件的整行数据
如果要提取满足条件的整行多列数据(比如=FILTER(数据区域, 条件列="指定值")),用这个公式:
=INDEX(数据区域, SMALL(IF(条件列="指定值", ROW(条件列)), ROWS($1:1)), COLUMN(数据区域))
- 同样按Ctrl+Shift+Enter触发数组运算,然后下拉+右拉公式,直到出现
#NUM!停止
隐藏错误值优化
如果不想显示提取完后的#NUM!,可以套上IFERROR屏蔽错误:
=IFERROR(INDEX(数据列, SMALL(IF(条件列="指定值", ROW(条件列)), ROWS($1:1))), "")
你之前用INDEX没成功,大概率是没结合SMALL和IF构建动态行号数组,或者没按数组公式的快捷键触发计算。
内容的提问来源于stack exchange,提问作者Miguel Quintana
相关产品推荐
相关产品推荐

