不支持自动溢出,函数FILTER仍然好用,无论Excel还是WPS

yumo6667个月前 (05-21)技术文章48

之前两篇关于函数的FILTER的文章备受关注,说明这个函数确实能给大家的工作带来便利。

点击查看第一篇

点击查看第二篇


同时也有不少吐槽,在没有溢出功能的WPS中其效果大打折扣。

没有自动溢出,我们就来手动溢出吧!


如图所示,简单的FITER筛选后通过溢出显示所有结果。

=FILTER(A2:A10,B2:B10="销售")

假设没有溢出功能,通过以下几步实现结果。

第一步,涉及的引用区域全锁定,公式变成:

=FILTER($A$2:$A$10,$B$2:$B$10="销售")

第二步,外包INDEX函数:

=INDEX(FILTER($A$2:$A$10,$B$2:$B$10="销售"),ROW(1:1))

FILTER返回的数据可以看作一个5行1列的数据区域,而INDEX的作用是返回该区域中的第n行。

ROW(1:1)时返回第1行,下拉公式变成ROW(2:2),ROW(3:3)…..时对应返回第2行,第3行……

第三步:当下拉数量超过FILTER返回的数据量时会产生错误值,外包IFERROR纠错。

=IFERROR(INDEX(FILTER($A$2:$A$10,$B$2:$B$10="销售"),ROW(1:1)),"")

如果返回值是二维数据呢?

=SORT(FILTER(A2:B10,B2:B10>LARGE(B2:B10,4)),2,-1)

逻辑上完全一样,只是需要同时设置INDEX的第二第三参数用以控制返回值。

=INDEX(SORT(FILTER($A$2:$B$10,$B$2:$B$10>LARGE($B$2:$B$10,4)),2,-1),ROW(1:1),COLUMN(A:A))
  • 原公式的基础上锁定引用区域。
  • 外包一个INDEX,ROW和COLUMN作为动态参数:

ROW(1:1),COLUMN(A:A)返回第1行第1列

ROW(2:2),COLUMN(A:A)返回第2行第1列

……

ROW(3:3),COLUMN(C:C)返回第3行第3列


其核心逻辑可概括为:FILTER返回一个数据区域,用INDEX通过动态参数ROW和COLUMN逐一提取。

点击查看函数ROW和COLUMN作为动态参数的文章

在Excel中也有不支持溢出功能的函数,以及不能用溢出功能的场合,INDEX提取数据就成了最后的救命稻草。

相关文章

Vlookup过时,新函数公式Filter,太牛了

在新版本的Excel里面,更新了一个Filter新函数公式, 在日常工作中,用途广泛,甚至可以动摇vlookup大哥的身份1、基本用法介绍Filter公式是筛选函数,使用用法,就像你在对数据筛选,把筛...

Excel的FILTER函数,你知道有多牛吗?(值得收藏)

"每天对着Excel按筛选键按到手抽筋?筛选部门要3步,多条件筛选要5分钟...今天教你用1个函数——=FILTER(),像魔法一样3秒提取数据!不用菜单、不用鼠标,从此告别‘筛选→勾选→再筛...

传统筛选点到手抽筋?FILTER函数让你体验开挂式办公!

“领导突然要南京和浙江的客户的销量!”如图所示:你是不是还在用传统方法筛选数据?1 按Ctrl+Shift+L 调出筛选按钮2 在下拉菜单里选择文本筛选3 在弹窗里手动输入“南京”或“浙江”4 把结果...

等了它N年,SORT函终于来了,可以让Excel表格自动排序

今天我们来学习一个Excel中的新函数,SORT函数,它的作用是对某一个数据区域进行排序,之前是OFFICE365的专属函数,现在WPS也支持这个函数了,我觉得是时候跟大家讲解下它是的使用方法,这个函...

VLOOKUP加班到秃头?FILTER函数3秒通杀一对一/多对多!

今天教你用FILTER函数,3秒搞定复杂筛选!不用背公式!不用加辅助列!连VLOOKUP都甘拜下风! 第1招:基础篇 → 找单条数据比翻通讯录还快!场景:在一坨数据里秒查“孔老三”的分数(领导点名要的...