分享

筛选条件下提取数据,如你没有新函数,就仔细看看这篇吧!

 互利互读一辈子 2024-05-24 发布于北京



图片


按条件提取数据,无论是一对多还是多对多的提取,我们都会使用经典的套路组合。那么,在筛选条件下,我们还可以使用吗?

题目时这样子的:


图片

在筛选条件下,提取成绩大于等于70分的所有数据。


01

在筛选条件下,我们仍旧可以使用对多的经典公式。


图片

在单元格A2中输入下列公式,三键回车并向右向下拖曳即可。

=IFERROR(INDEX(Sheet1!A$2:A$61,SMALL(IF(SUBTOTAL(3,OFFSET(Sheet1!$D$1,ROW($1:$60),))*(Sheet1!$D$2:$D$61)>=80,ROW(Sheet1!$D$2:$D$61)-1),ROW(A1))),'')
OFFSET(Sheet1!$D$1,ROW($1:$60),)

这部分,以sheet1中单元格D1为基点,分别向下移动1行-60行,形成一个新的内存数组。

SUBTOTAL(3,OFFSET(Sheet1!$D$1,ROW($1:$60),))

这部分,利用SUBSTOTAL来判断哪些单元格是隐藏状态,哪些是显示状态,并分别返回0和1。

SUBTOTAL(3,OFFSET(Sheet1!$D$1,ROW($1:$60),))*(Sheet1!$D$2:$D$61)>=80

条件判断。

IF(SUBTOTAL(3,OFFSET(Sheet1!$D$1,ROW($1:$60),))*(Sheet1!$D$2:$D$61)>=80,ROW(Sheet1!$D$2:$D$61)-1)

IF函数对上面的条件进行判断,满足部分返回对应的行号

INDEX(Sheet1!A$2:A$61,SMALL(IF(SUBTOTAL(3,OFFSET(Sheet1!$D$1,ROW($1:$60),))*(Sheet1!$D$2:$D$61)>=80,ROW(Sheet1!$D$2:$D$61)-1),ROW(A1)))

INDEX函数嵌套SMALL函数返回正确答案。

最后IFERROR函数屏蔽错误

这个就是我们在筛选条件下按条件提取数据的经典套路!


02


图片

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多