数据洞察:PMC中的单条件与多条件筛选技巧与案例剖析
优秀创作者
在PMC的工作环境中,数据分析是一项频繁进行的任务。为了在不影响原始表格数据的前提下,一个常用的方法是在新表格中利用筛选函数进行单条件或多条件的数据筛选。针对各异的数据集,所需筛选的条件亦存在差异。有的情形仅涉及一至两个筛选条件,而在一些复杂度较高的场景中,筛选条件的数量可能远超五个,呈现出多维度、多层次的特点。
今日,古老师将以具体案例剖析,在面对各类筛选条件时,如何选取最为适宜的方法以实现最优数据筛选。特别是对于多条件筛选场景,他将重点解读一种效率极高的筛选思路。
单条件筛选
单条件筛选是FILTER函数的基础应用之一。借助该函数及其参数设定,可迅速筛选出满足特定条件的数据子集。以下为此函数的具体应用示例:
=FILTER(B5:E16,C5:C16=G2)
解释如下:
数组:指明待筛选并最终显示的范围,此处为B5:E16,涵盖“日期”、“订单”、“产品”及“数量”四列数据。
包括:定义筛选依据的判断条件。在本例中,条件区域为C5:C16(即“订单”列),判断逻辑为“=G2”。这意味着仅保留订单列中与G2单元格内容(即“PO-1”)相等的行。
执行上述函数后,得到的筛选结果如附图所示。
多条件筛选
单条件筛选与多条件筛选在使用FILTER函数时的主要差异体现在第二个参数,即“包括”部分。进行多条件筛选时,各筛选条件间采用特定格式连接,具体如下:
或多条件:
=FILTER(数组,(条件1区域=条件1) + (条件2区域=条件2) * ……)
此处,各筛选条件以“条件区域=条件值”的形式表示,并通过符号“+”(逻辑加)连接。这意味着只要满足其中任何一个条件,相关数据行即会被筛选出来。
=FILTER(B5:E16,(C5:C16=G2)+(C5:C16=H2))
此公式旨在筛选出B5:E16范围内,满足以下条件的数据行:
C列订单列中订单等于G2(PO-1) 或者订单等于H2(PO-1)
通过在“包括”部分使用逻辑加(“+”)连接两个单条件筛选表达式 (C5:C16=G2) 和 (C5:C16=H2),实现对订单列中订单为“PO-1”(由G2单元格提供)或“PO-1”(由H2单元格提供)的数据行进行筛选。
效果如下图所示:
并多条件:
=FILTER(数组,(条件1区域=条件1) * (条件2区域=条件2) * ……)
各筛选条件同样以“条件区域=条件值”的形式表述,但各条件间采用符号“*”(逻辑乘)连接。在这种情况下,只有当所有条件均得到满足时,对应数据行才会被筛选出来。
=FILTER(B5:E16,(C5:C16=G2)*(E5:E16<H2))
此公式旨在筛选出B5:E16范围内,满足以下条件的数据行:
C列订单列中订单等于G2(PO-3) 并且E列数量列小于H2(50)的数量
通过在“包括”部分使用逻辑乘(“*”)连接两个单条件筛选表达式 (C5:C16=G2) 和 (E5:E16<H2),实现了对订单列中订单为“PO-3”且数量列中小于50的数据行进行筛选。最终筛选结果将只包含订单列中订单为“PO-3”且数量小于50的数据记录。
效果如下图所示:
说明如下:
数组:同前,指定待筛选的数据范围。
包括:在多条件筛选中,根据实际需求选用上述两种逻辑组合方式之一,构建相应的条件表达式。第一种表达式适用于“或关系”筛选(满足任一条件即可),第二种表达式适用于“与关系”筛选(需同时满足所有条件)。
超多条件筛选
当筛选条件数目超过五个时,继续沿用上述FILTER函数的条件表达式格式,即:
=FILTER(数组,(条件1区域=条件1) * (条件2区域=条件2) * ……);
无论采用“或”逻辑还是“并”逻辑,都会导致“包括”部分的条件列表变得极为冗长,不利于阅读与维护。因此,在处理超多条件筛选问题时,有必要调整“包括”条件的编写方式,以实现更简洁、高效的筛选表达。
以下为对5个条件进行“或”筛选的过程,目标是筛选出订单列中订单为“PO-7”、“PO-2”、“PO-3”、“PO-4”或“PO-5”的结果。为便于理解,我们将分步展示运算步骤:
构建对比矩阵:
订单列:取自C2:C16,确保在垂直维度上排列。
条件列:取自C2:G2,确保在水平维度上列出所有待筛选订单(“PO-7”、“PO-2”、“PO-3”、“PO-4”、“PO-5”)。
对比公式:=C5:C16=C2:G2,此公式将订单列与条件列进行逐元素比较,生成一个二维逻辑数组,其中元素值为TRUE或FALSE,表示对应订单是否符合指定条件。TRUE代表满足;
在得到上述逻辑值数组之后,确实不能直接用于某些数学或统计运算。为实现逻辑值到数值的转换,可以使用WPS中的N函数:
=N(C5:C16=C2:G2)
此函数将把先前得到的逻辑值数组(TRUE/FALSE)转化为对应的数字值(1/0)。具体来说,对于逻辑数组中的每个元素,若为TRUE,则转换为1;若为FALSE,则转换为0。这样,我们就得到了一个同样大小的数值数组,效果如下图所示:
在使用筛选函数时,确实无法直接将一个二维逻辑数组作为“包括”参数。为解决这一问题,可以将二维数组转换为一维数组,以便于后续与FILTER函数配合使用。这里推荐使用WPS中的BYROW函数结合LAMBDA匿名函数实现数组求和:
=BYROW(N(C5:C16=C2:G2),LAMBDA(X,SUM(X)))
或者直接简写:
=BYROW(N(C5:C16=C2:G2),SUM)
效果如下:
至此,我们已成功将二维逻辑数组转换为一维数组,便于后续与FILTER函数配合,进行订单筛选。接下来,只需将该一维数组作为FILTER函数的“包括”参数。
录入以下函数:
=FILTER(B5:E16,BYROW(N(C5:C16=C2:G2),SUM))
即可得到一个基于“或”逻辑的五条件筛选结果。该函数将筛选出B5:E16范围内,订单列(C列)中订单至少符合“PO-7”、“PO-2”、“PO-3”、“PO-4”或“PO-5”中任意一个条件的行。
思路总结:
N(C5:C16=C2:G2):将订单列与条件列进行逐元素比较,生成一个二维逻辑数组,并通过N函数将其转化为数值形式(1代表TRUE,0代表FALSE)。
BYROW(N(C5:C16=C2:G2), LAMBDA(X, SUM(X))):对上述二维数组逐行求和,生成一个一维数组。数组中的每个元素值表示对应订单行是否至少符合一个筛选条件(非零值表示至少符合一个条件,0表示不符合任何条件)。
FILTER(B5:E16, BYROW(N(C5:C16=C2:G2), LAMBDA(X, SUM(X)))):利用FILTER函数筛选B5:E16范围内,订单列中订单符合一维数组中非零元素所对应条件的行,即至少符合一个筛选条件的订单数据。
效果如下图所示:
325 告别杂乱:基于WRAPROWS与REDUCE的二维项目跟进表高效重整
324 告别手动更新:WPS动态数组公式助力项目跟进表实现全自动化统计
322 多表并一,费用归类:WPS VSTACK函数助力PMC高效整合项目开支
321 从复杂到清晰:PMC如何优雅处理合并单元格,高效实现销售排名
320 PLM系统上线前奏:智能化模板破局BOM物料重复难题
319 XLOOKUP赋能动态联动菜单:轻松实现多级数据筛选与更新
318 整合WPS新函数:REDUCE、LAMBDA与VSTACK,构建高效BOM整理解决方案
317 【案例解析】信息化系统BOM数据不规范?看PMC如何化繁为简
316 PMC实战分享:如何应对大型零部件逐日管控难题与WPS表格模板设计
315 巧用表格函数优化销售业绩分配:提升奖金计算效率与准确性
314 巧用WPS 新函数:无辅助列情况下处理合并单元格查询统计难题
313 破译订单堆叠难题:WPS SCAN函数在PMC生产计划中的应用实例
312 PMC的日常挑战:如何用WPS表格精准抓取单元格内的数字信息
311 零件产销存报表难题:不规范数据格式与跨页数据整合的困局与破局
310 WPS最新函数技巧:精准定位与智能舍入,罗马数字秒变阿拉伯数字
309 PMC精益库存管理与订单分配自动化设计WPS一站式报表模板
308 工厂信息化升级实战:巧解无规律物料编码,动态提取字母组合
307 一招GET!借助通配符解决表格数据汇总难题:SUMIF函数实例详解
306 一键生成:RANDARRAY 函数在数据分组与数学作业个性化定制中的妙用
305 实战演练:10种创新策略解锁WPS表格函数在成绩查询中的高效应用
304 步步详解:运用WPS函数整合工厂报表,实现全年度产品数据深度挖掘
303 运用WPS新函数实现工厂产销存报表的智能化整合与数据分析
优秀创作者
创作者俱乐部成员
优秀创作者