还在手动筛选数据-还在手动筛选数据怎么办


还在手动筛选数据-还在手动筛选数据怎么办

有些业务需要经常手动筛选指定条件数据 , 虽然操作上不是很繁琐,但就是小操作,很容易让你熬夜加班 。
还在手动筛选数据-还在手动筛选数据怎么办

在Microsoft 365和WPS最新版中,上线了Filter这个动态筛选函数 。
函数作用就是,根据指定条件,对目标数据进行筛?。?将最终的筛选结果直接展现出来 。
「所以好处是什么?」 如果使用filter函数 , 你只需要一次创建好函数模板 , 后期更新数据库,就能自动完成所有筛选操作 。
还在手动筛选数据-还在手动筛选数据怎么办

「那么如何使用函数公式有条件的动态筛选数据?」
本期用「filter函数」「if函数」分别实现下面的筛选需求 。
  1. 单条件筛选
  2. 多条件同时满足或只满足任意条件
  3. 要么同时满足某些条件 , 要么符合指定条件
点赞收藏,根据你的需要选择合适的方法 。

1. Filter函数怎么用?

函数参数如下:
=FILTER(array,include,[if_empty])
还在手动筛选数据-还在手动筛选数据怎么办

图片来自office支持
Microsoft 365,Excel 2021以及WPS最新版支持该函数
第一个参数是待筛选的数据区域或者数组,第二个是一个一维布尔值数组,这个待会详细介绍,第三个是当没有符合条件数据时返回的值 。
以这张信息表为例:
还在手动筛选数据-还在手动筛选数据怎么办

我们需要筛选提取所有性别为「男」的数据,使用公式如下:
=FILTER(A2:C8,B2:B8="男")
还在手动筛选数据-还在手动筛选数据怎么办

可以注意到,函数第二个参数使用了B2:B8="男"这样的条件式,这个条件式的结果是这样的:
还在手动筛选数据-还在手动筛选数据怎么办

符合条件的,返回结果True,不符合则是False 。由此构成了一组一维的布尔值数组 。
这个数组有以下几个条件:
  1. 数组必须是单行或者是单列的一维数组;
如果要筛选行,则是单列数组 , 筛选列则是单行数组 。
  1. 数组大小必须与待筛选的数组大小保持一致 。
例如待筛选数组要筛选行,则布尔值数组只能是单列且行数与待筛选数组行数一致的一维数组 。
  1. 数组内容必须是布尔值 , 也就是True或者False(1,0等数字也可以)
由此,使用filter函数的关键,就是如何生成符合条件的布尔值数组,也就是如何输入条件 。
下文提供常见的filter函数筛选条件案例,可参照学习 。

1.1 filter单条件

【还在手动筛选数据-还在手动筛选数据怎么办】按行筛选出年龄大于60的数据 。
=FILTER(A2:C8,C2:C8>60)
还在手动筛选数据-还在手动筛选数据怎么办


按列筛选出姓名和年龄 。
=FILTER(A2:C8,{1,0,1})
还在手动筛选数据-还在手动筛选数据怎么办

条件式中的{1,0,1}就是一组单行的布尔值数组 , 分别对应姓名、性别和年龄 , 其中大于等于1则提取保留,等于0则剔除 , 此处直接写了条件式结果 。

1.2 filter同时满足多个条件

按行筛选性别女且年龄大于50的数据 。
=FILTER(A2:C8,(B2:B8="女")*(C2:C8>50))
还在手动筛选数据-还在手动筛选数据怎么办

注意多个条件同时满足情况下,使用 * 将多个条件相乘,此处不适用and函数,是由于and函数的最终结果是唯一值,不是数组 。
把条件写在单元格内,最终结果如下图所示 。只有全部满足,结果才为1 。
还在手动筛选数据-还在手动筛选数据怎么办


1.3 filter满足多个条件中的任意一个条件

按行筛选性别女或年龄大于50的数据 。
=FILTER(A2:C8,(B2:B8="女") (C2:C8>50))
还在手动筛选数据-还在手动筛选数据怎么办

与同时满足条件相比 , 唯一的区别就是多个条件之间使用 相加,此时,只需有一个满足,那么结果至少会大于1 。

1.4 filter同时满足两个条件或满足其他任意一个条件

按行筛选年龄小于等于60且性别为女,或者年龄小于30的数据
=FILTER(A2:C8,((B2:B8="女")*(C2:C8<=60)) (C2:C8<=30))
还在手动筛选数据-还在手动筛选数据怎么办

存在较为复杂的条件时,直接使用括号将对应条件合并成另一个新条件,再进行运算 。
例如需求中的第一个且条件里的多个条件相乘,然后合并在一起与另一个条件相加做或条件 。

2. 使用普通if函数代替实现filter函数效果

如果软件版本没有filter,也想实现类似的效果 , 可以使用if函数搭配数组公式实现 。
当然,不支持动态数组的软件版本,还是要按照原本的数组公式录入方法进行使用 。
数组公式使用方法
  1. 需提前选中承接数组公式结果的单元格区域
  2. 再输入数组公式
  3. 最后需要按数组确认键 CTRL SHIFT 回车 确认公式
具体使用,可以参考下方案例直接套用公式:

2.1 单条件筛选

=SORT(IF(B2:B8="男",A2:C8,""),,-1)
还在手动筛选数据-还在手动筛选数据怎么办

由于单独使用if筛选,会导致不符合条件的数据变成空值,且留在原有的位置,因此使用sort函数,将其按倒序排序 , 使其符合条件的值保留在上方 。
不好的点在于最终会对结果数据进行排序,如果要不进行排序操作,直接剔除空值数据的做法会很复杂 , 不建议使用 。

2.2 多条件筛选

同时满足情况下用*链接所有条件,或条件情况下用 链接 。这与filter的多条件用法保持一致 。
=SORT(IF((B2:B8="男")*(C2:C8>60),A2:C8,""),,-1)
还在手动筛选数据-还在手动筛选数据怎么办


if函数筛选的其余情况基本与filter函数的使用条件一致,灵活创建条件式生成的布尔值,可以实现不同的效果 。
比如在之前发布的unique函数文章中(可看主页文章列表),我们就利用了match函数与row函数定位了不重复数据的位置 。
由此,你也可以生成对应的布尔值数组 , 可以用来给if函数,直接返回所有的不重复数据 , 感兴趣的同学,欢迎评论留言 。


相关经验推荐