381智能化革新!PMC专员如何一键优化订单追踪报表

职场计划有古哥 2024-05-07 16:52:17

分享一个生产计划PMC的工作实例:某PMC专员每日需向上级领导汇报订单完成情况,特别之处在于,领导时常请求获取特定日期的订单详情,比如查询4月30日所有订单的不良品总数。然而,该PMC使用的《订单完成明细表》采用了二维表格布局,尽管详尽,却未便于直接根据指定日期、项目及数量进行检索。目前,获取这类特定信息需经过三次过滤步骤,并手动将结果转移到新工作表中,流程繁琐。

为此,该PMC期望能优化这一流程,设计一个智能化的表格函数。理想状态下,该函数允许用户仅需输入查询日期,即可自动执行多条件筛选,迅速呈现所需数据,从而大幅提升工作效率。

需求分析

为了解决这一问题,首先应对《订单完成明细表》的结构进行分析,正如上图展示,该表格采纳了二维数据布局的设计理念。具体而言,B列记录了订单号,C列标识项目类别,涵盖了与订单相关的各类项目描述,诸如“红色”、“黄色”及“不良品”等。横向来看,D2至F2单元格横跨的是日期栏,代表不同的统计日期。紧接着,D3至F12区域则详细列出了每个订单及项目类别在相应日期下的数量分布情况。

根据领导的具体需求,可以明确以下三项查询条件:

指定日期:需从横轴日期范围D2至F2中任意选定一天。

指定类别:关注的项目类型位于C列,可能是“红色”、“不良品”等任一类别。

指定数量:对数量有特定要求,可能是大于零的记录,或是小于某一特定数值的所有实例。

因此,运用FILTER函数来筛选符合这三项条件的数据记录是直接的办法,关键在于如何将原始的二维数据转换为一维格式以便进一步处理。解决方案是,通过垂直数组与水平数组的乘积来构造一个二维的条件判断矩阵。随后,利用BYROW函数针对这个二维矩阵的每一行执行求和操作,从而生成一个一维的垂直数组,这样便实现了从二维到一维的有效转换,为后续的数据筛选与分析奠定了基础。

构建二维矩阵

为了给FILTER函数设定筛选条件,我们依据上述三个条件来构建相应的二维逻辑矩阵。构建方法涉及条件间的逐个乘积运算:

条件1: 比较单元格范围D2:F2与查询日期I1(即4月30日),生成一个水平方向的逻辑值序列,表达式为=D2:F2=I1,用于确认日期是否匹配。

条件2: 针对项目匹配,比较列C中的项目(单元格C3:C12)与查询项目K1(即“不良品”),产出一个垂直的逻辑结果序列,公式为=C3:C12=K1,确保项目相符。

条件3: 要求数量大于0,通过比较范围D3:F12中的每个元素是否大于0,得到一个反映数量要求的二维逻辑矩阵,表达式为=D3:F12>0,以此筛选出有效数量记录。

通过这三个条件的逐一乘积运算,我们能够综合这些条件,生成一个适用于FILTER函数的复合逻辑矩阵,进而精确筛选所需数据。

效果如下图所示:

构建一维数组

具备了上述的复合逻辑矩阵后,我们可以高效地生成一维数组。在进行此操作之前,需先执行三个条件的逻辑值乘积计算,接着利用BYROW函数针对该矩阵的每一行应用求和操作。具体函数实现如下:

=BYROW((C3:C12=K1)*(D2:F2=I1)*(D3:F12>0),SUM)

函数解释:

BYROW 部分:此函数对给定的矩阵(在这里是由三个条件逻辑乘积构成的矩阵)按行处理。

参数1:(C3:C12=K1)*(D2:F2=I1)*(D3:F12>0) 是一个逻辑值矩阵,其中每个元素表示对应位置是否同时满足所有三个条件。

参数2:LAMBDA(row,SUM(row)) 是一个匿名函数(Lambda函数),它对BYROW提供的每一行(row)执行求和操作(SUM(row))。这意味着对于复合逻辑矩阵的每一行,所有逻辑值(True视为1,False视为0)会被加总。

综上所述,该函数的作用是,针对符合日期、项目以及数量大于0的所有条件的行,计算每行中满足条件的单元格数量,最终输出一个代表各符合条件行满足条件总数的一维数组。

效果如下图所示:

筛选数据

拥有了上述由数字(1和0)组成的一维垂直数组后,我们能够将其作为 FILTER 函数的条件参数,来实现数据的快速筛选。请使用以下公式进行操作:

=FILTER(B3:F12,BYROW((C3:C12=K1)*(D2:F2=I1)*(D3:F12>0),SUM))

函数解释:

FILTER 部分:此函数根据提供的条件筛选范围内的数据。在这个例子中,它会从 B3:F12 的范围内筛选出符合条件的行。

第一个参数 B3:F12 指定了待筛选的数据范围。

第二个参数 BYROW(...) 定义了筛选条件。这里,通过计算每行逻辑值的乘积并汇总,判断哪些行满足全部条件。

(C3:C12=K1)*(D2:F2=I1)*(D3:F12>0) 创建了一个逻辑矩阵,其中每个元素为真(1)表示对应单元格满足所有给定条件,否则为假(0)。

BYROW(..., LAMBDA(row, SUM(row))) 对上述逻辑矩阵的每一行应用 Lambda 函数,计算每行中真值的数量。如果某行的总和大于0,则表示该行至少有一个条件满足,因此会被纳入筛选结果。

总之,该公式的作用是筛选出 B3:F12 范围内那些行,这些行在指定的列(日期、项目、数量)上分别满足预设的条件(日期等于 K1,项目等于 I1,数量大于0)。

效果如下图所示:

查找聚合法

上述方案已基本满足多条件筛选数据的需求,但存在一个小问题:在进行多条件筛选时,非目标日期的数据也会被包括在结果中。为精确仅保留查询日期的数据,可采用查找引用与聚合函数相结合的方法优化,如下所示:

=LET(A,XLOOKUP(I1,D2:F2,D3:F12),GROUPBY(B3:C12,A,N,0,0,,(C3:C12=K1)*(A>0)))

函数解释:

LET 函数用于定义局部变量A,提高公式可读性和效率。

LET(A):使用 XLOOKUP 函数根据查询日期 I1(4-30) 在 D2:F2 范围内查找对应的日期值,然后返回 D3:F12 相同位置的值,即目标日期下的数量。

GROUPBY 函数,它根据 值(即目标日期下的数量)对 B3:C12 数据进行分组,并执行聚合操作。

N 表示不对数据进行任何聚合操作,直接传递原值。

0, 0 分别不显示总计。

最后的条件 (C3:C12=K1)*(A>0) 确保只选择项目类别等于 K1 且日期匹配(即数量大于0,意味着是在查询日期下的记录)的行。

通过此公式,我们不仅实现了多条件筛选,还确保了结果中仅包含确切查询日期的数据,提高了筛选的准确性。

数据如下图所示:

最后总结:

通过上述案例分析与解决方案的实施,我们成功地为PMC专员的日常工作挑战找到了一个高效的解决途径。原本复杂的手动筛选和数据转移过程,已被一个智能化、自动化的WPS公式所取代。该公式不仅整合了多条件筛选的复杂需求,还通过查找引用与聚合函数的创新结合,确保了筛选结果的高度精准性,仅展现查询指定日期下的相关数据。

此优化极大简化了PMC专员向领导汇报订单完成情况的流程,显著提升了工作效率,减少了因人工操作可能导致的错误。此外,借助LET和GROUPBY等高级函数的应用,不仅增强了公式的灵活性和可维护性,还为其他类似数据处理任务提供了可借鉴的模板,展现了数据分析自动化在实际工作场景中的强大潜力。

总之,通过技术赋能,将繁琐的手动步骤转变为一键式智能操作,不仅解决了当前的业务痛点,也为团队引入了一种现代化的数据管理方法,为企业的数字化转型之路添上了坚实的一块基石。未来,随着更多智能化工具与方法的探索与应用,类似的工作效率提升将会成为常态,进一步推动企业生产力和竞争力的飞跃。

0 阅读:0

职场计划有古哥

简介:感谢大家的关注