=FILTER(A2:C8{101)
1.2 filter同时满足多个条件按行筛选性别女且年龄大于50的数据 。
条件式中的{101就是一组单行的布尔值数组 , 分别对应姓名、性别和年龄 , 其中大于等于1则提取保留 , 等于0则剔除 , 此处直接写了条件式结果 。
=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函数搭配数组公式实现 。
当然 , 不支持动态数组的软件版本 , 还是要按照原本的数组公式录入方法进行使用 。
具体使用 , 可以参考下方案例直接套用公式:
数组公式使用方法
- 需提前选中承接数组公式结果的单元格区域
- 再输入数组公式
- 最后需要按数组确认键 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函数 , 直接返回所有的不重复数据 , 感兴趣的同学 , 欢迎评论留言 。
- 电子商务|苹果只想赚钱!Apple Watch3竟还在卖:无法更新系统
- 苹果|程序员专用笔记本上市:放弃Win11 拥抱Linux
- 程序员|跨境电商三箭齐发,2022中国品牌出海如何破局?预见·未来风向,品牌出海线上峰会圆满落幕
- 程序员|为什么大家都觉得前端自学比培训好?
- 感觉很少用银行卡了,但银行卡发卡量还在增加,谁在办理银行卡?
- 顶级程序员的标配?江苏女子买假发送老公,网友看后沉默了
- 数据库|高薪程序员必备知识:图数据库
- 两年了,为啥汽车还在缺芯?
- MySQL|程序员一句话,穷则思变,你穷就要反思自己穷的原因
- 美团买菜|广州蓝景技术分享——程序员就业需要必备的3个“软技能”