全文约2700字
大家好,我是古老师。今天,我将发布PMC行业群第50周的“每日一练”题目与答案。本次发布的材料包含每日练习题、对应的正确答案以及相关考点的解析,供各位参考学习。本周的主题是数据分析中的筛选分析问题。希望大家通过这些练习提升自己的技能,从而更好地胜任PMC相关岗位的工作。
周一:单条件筛选题目背景:
在数据处理中,有时我们无法直接更改或调整数据格式。面对这种情况,最佳方案是使用函数将需要分析的数据筛选到其他区域或新的工作表中进行单独分析。
考核点:
1. 数据分析基础。
2. 单条件筛选函数的应用。
参考答案:
核心公式 使用 FILTER 函数来实现单条件筛选。此函数的用法较为简单:第一个参数为要显示的数据区域,第二个参数为筛选条件。例如,FILTER(数据区域, 筛选条件) 可以直接筛选出符合条件的数据。
第二种方法 是通过 IF 函数结合 TOCOL 和 WRAPROWS 函数实现。这种方法首先使用 IF 函数判断是否符合筛选条件,若符合条件则返回对应值;随后使用 TOCOL 函数整理结果,并利用 WRAPROWS 函数对数据进行二次转换,以支持更大范围的数据动态扩展。
第三种方法 则是采用聚合函数(如 GROUPBY),并利用最后一个参数作为条件进行筛选和聚合分析。
周二:多条件动态扩展筛选题目背景:
单条件筛选是大多数PMC从业者已经掌握的技能,但对于涉及多个条件的筛选,尤其是当条件数量非常多时,则需要运用更高级的技术和方法来实现。本练习旨在提升大家应对复杂筛选条件的能力。
考核点:
1.多条件下动态扩展筛选的应用。。
2.超多条件筛选方案的设计。
3.理解公式中加号(+)与乘号(*)在逻辑判断中的应用。
参考答案:
答案1:使用 FILTER 函数的传统解法
使用 FILTER 函数进行多条件筛选时,可以通过符号“+”表示逻辑“或”关系,将多个筛选条件组合起来。例如,FILTER(数据区域, 条件1 + 条件2) 表示只要满足条件1或条件2的数据都将被筛选出来。
答案2:基于 IF 函数的逻辑判断
当使用 IF 函数构建逻辑判断时,可以用“+”号代表逻辑“或”,而用“*”号代表逻辑“与”。即,IF(条件1 + 条件2, 结果) 表示如果条件1或条件2成立,则返回结果;IF(条件1 * 条件2, 结果) 表示只有当条件1和条件2都成立时才返回结果。
答案3:结合垂直数组与水平数组进行批量判断
对于特别多的条件,可以创建一个多行多列的逻辑值数组,其中每一列表示一个条件。通过 BYROW 函数对这个逻辑值数组按行运算(如使用 *1 将逻辑值转换为数字),得到一个由0和1组成的垂直数组,用于 FILTER 函数的条件判断。这种方法适合处理大量条件的批量判断任务。
周三:多条件筛选汇总排序题目背景:
在实际的数据分析场景中,我们经常需要根据特定条件筛选数据。例如,筛选出1#线体的数据后,进一步筛选该线体中由“关羽”或“吕布”负责的业务信息。获取这些信息后,还需要对它们进行汇总(如销售金额),并对结果进行降序排序。
考核点:
1. 多条件筛选
2. 多条件数据数据汇总
3. 数据排序
本题答案:
本题的解决方案也比较多,这里只列举出一种解法。用GROUPBY函数进行按聚合,因为需要聚合的行标签不在一起,需要用HSTACK进行拼接(A,E分别对应线体和业务),值标签为D列销售数据。函数用SUM,进行汇总。后面的参数分别控制排序、筛选。这种方法能够快速解决包含多个需求的复杂业务场景:首先筛选特定条件的数据,然后对其进行汇总,最后完成排序。
周四: 条件筛选后加空堆叠题目背景:
在生产计划中,我们常常需要为每一组符合条件的数据独立创建标题,并在各组数据之间插入空行以进行分隔。例如,创建类似工资条的表格,其中每组数据(如每位员工的工资信息)之间都有空行作为分隔。这不仅需要用到筛选函数,还需要核心的高级函数 REDUCE 和 LAMBDA 来实现这一复杂需求;
考核点:
1.多条件判断筛选;
2.空行数组的创建;
3.高阶函数 REDUCE 的应用与堆叠逻辑;
本题答案:
一种直观且易于理解的方法是使用 UNIQUE 函数对筛选条件(如姓名)进行去重处理,从而得到一个唯一的姓名数组。这个数组可以作为 REDUCE 函数中的迭代值(Y),用于逐个处理每个唯一值。标题列则可以作为初始值(X)。配合筛选函数,我们可以根据 Y 值筛选出符合条件的数据,并使用 VSTACK 函数垂直合并这些数据,同时在每组数据之间添加空行。
这种方法能够有效地处理复杂的业务场景,即在筛选特定条件的数据之后,为每一组数据创建独立的标题,并在各组之间插入空行进行分隔,全部通过动态数组函数实现。
周五:合并单元格的多条件筛选汇总出题背景:
在处理数据时,标准格式的数据筛选相对简单,但当面对非标准格式的数据(如存在合并单元格)且查询条件复杂(如需根据多个条件进行筛选)、需要汇总多项指标(如数量和金额),并要求从一维数据转换为二维表格结构的复杂需求时,情况就变得更为棘手。针对这样复杂的业务场景,建议使用辅助列结合函数处理,本题目旨在研究如何通过动态数组实现一键扩展。
本题考点:
1. 一个公式全动态扩展设计;
2. 复杂条件的筛选;
3. 合并单元格处理;
4. 表格数据结构的变换一维到二维;
本题答案:
题目要求根据一维数据及两个查询条件(客户和年份)对商品按月汇总销售金额。原始数据中,A列为日期,但没有独立的年份和月份列。查询的商品列表是以合并单元格的形式给出,每个商品对应数量与金额。为了满足这些需求,我们需要将非标准格式的数据转换为一维到二维的汇总表。具体步骤如下:
处理合并单元格:使用 SCAN 函数处理合并单元格,确保每个商品都有对应的完整信息,形成标准的一维数据。
数据筛选与聚合:利用 PIVOTBY 函数按照年份和客户进行聚合分析。结合日期函数和筛选函数提取所需数据。
构建最终输出:使用 INDEX 和 MATCH 函数引用金额和其他字段,并用 VSTACK 函数堆叠查询结果,以创建所需的二维表格结构具体的函数如下:
=IFERROR(LET(G,SCAN("",K2:K15,LAMBDA(X,Y,IF(Y="",X,Y)))&L2:L15,T,LET(A,FILTER(A2:F5450,(YEAR(A2:A5450)=I2)*(B2:B5450=I1)),B,INDEX(A,,1),C,INDEX(A,,3),D,INDEX(A,,4),E,INDEX(A,,6),VSTACK(PIVOTBY(C&D1,MONTH(B),D,SUM),PIVOTBY(C&F1,MONTH(B),E,SUM))),INDEX(T,MATCH(G,TAKE(T,,1),0),SEQUENCE(,12,2))),0)
解释:
使用 SCAN 函数处理合并单元格,生成新的辅助列 G。
使用 FILTER 函数根据年份和客户筛选出符合条件的数据,并分别提取日期、商品、数量、金额等字段。
使用 PIVOTBY 函数根据商品和月份进行汇总,分别计算数量和金额的总和。
使用 VSTACK 函数堆叠两次 PIVOTBY 的结果,构建二维汇总表。
最后,使用 INDEX 和 MATCH 函数引用相应的汇总数据,并通过 SEQUENCE 函数生成月份列索引。
这种方法能够高效地应对复杂的业务需求,从处理非标准格式的数据到实现一维到二维的数据转换,提供了一套完整的解决方案。
方法2:
最后总结总之,通过这50周的持续学习和实践,我们希望每位学员不仅能掌握生产计划与物料控制(PMC)的核心技能,还能培养独立思考和解决问题的能力。加入我们的PMC专业群,与古老师一同深入学习和探讨。在未来的工作中,当您遇到类似的挑战时,能够自信地应用这些方法和技术,为您的团队和企业创造更多价值。
我们鼓励大家继续积极参与,不断巩固所学知识,并将其灵活运用于实际工作中。相信通过不断的努力,每位学员都能在职业道路上取得更大的成就。期待与您共同成长,迎接未来的每一个挑战!下周见。