PMC每日一练:第42周复盘:销售订单分析专题

Lv.2潜力创作者
大家好,我是古老师。今天我将发布2025年第42周PMC生产计划群的“每日一练”题目与答案。本次发布的资料包括每日练习题、对应的正确答案以及对相关考点的详细解析,旨在辅助大家的学习,并作为参考资料使用。
本周的练习题目的方向为“销售订单分析”专题,包语法糖、聚合函数、自定义函数、数组变形、堆叠等知识点。
周一:42-1销售订单分析:汇总、统计、平均、最值-答案
知识点:
1.区域简写语法(A2:.A50000):这是一种便捷的写法,代表从单元格A2到A50000的连续区域(A2:A50000)。它能有效简化公式输入。
2.聚合函数(GROUPBYvsPIVOTBY):
GROUPBY主要用于处理一维数据的聚合(按行或列分组)。
PIVOTBY功能更强大,专为处理二维表格数据设计,能同时按行和列分组汇总(本例中仅按行分组)。
学习建议:对于初学者,如果只需实现类似GROUPBY的按单维度分组效果,可以直接学习PIVOTBY。PIVOTBY的语法在单维度场景下同样适用且功能更强,掌握它后可以覆盖GROUPBY的常见用途。GROUPBY在特定一维场景下可能有轻微性能优势,但PIVOTBY的通用性更值得优先掌握。
3.多聚合函数组合(HSTACK):
使用HSTACK函数可以将多个聚合函数(如SUM,COUNTA,AVERAGE,MAX)的结果水平堆叠输出到相邻的列中,一次性获得多种统计结果。
4.聚合函数简写:WPS支持常用聚合函数的简写形式,如SUM,COUNTA,AVERAGE,MAX,MIN等。在GROUPBY或PIVOTBY的聚合函数参数位置直接使用这些名称即可,无需写成LAMBDA函数(例如LAMBDA(array,SUM(array)))。
5.传统函数组合方法:第三个公式展示了使用LET、LAMBDA、UNIQUE、COUNTIF、SUMIF、MAXIFS等传统函数组合实现相同聚合效果的方法。这种方法通常结构更复杂、嵌套更深、可读性较差。
优先推荐:在支持GROUPBY或PIVOTBY的Excel版本中,强烈建议优先使用这两个专门的聚合函数。它们语法更简洁、意图更明确,能显著提高公式的可读性和编写效率。
数组公式:
其他答案:
周二:42-2 销售订单分析:当日客户数 - 答案
知识点:
1. 多指标聚合分析
首先,需对关键业务字段(如销售额、订单量等)进行综合性统计分析。通过 GROUPBY 函数,按指定分组字段(如客户、区域等)同时计算多项聚合指标,包括:
求和(SUM):反映总体规模;
计数(COUNTA):统计订单或记录数量;
平均值(AVERAGE):衡量单次交易水平;
最大值(MAX):识别峰值表现。
此类多指标并行计算,提升了数据分析的深度与效率。
2. 结构化结果合并
在完成不同维度的聚合后,需使用 HSTACK 函数将多个独立的结果区域横向拼接,构建统一输出表格。该过程要求各数据块行数一致,并合理处理标题行,确保最终结果整齐可读。
3. 去重统计的特殊处理
当涉及“按客户+某属性”组合去重计数时(例如统计每位客户的不重复产品种类数),无法直接通过简单聚合实现。此时必须借助 LAMBDA 自定义逻辑 配合 GROUPBY 使用,以支持复杂的嵌套操作。
典型去重计数模式为:COUNTA(UNIQUE(条件筛选后的数组));此公式结构可准确剔除重复项,实现精准的“非重复计数”,是高频且关键的高阶技巧。
4. 关于动态数组的引用与拆分
由于去重组合可能产生新的分组结构(如客户与分类的唯一配对),需先通过 UNIQUE(HSTACK(...)) 构建联合主键,再分别提取行标签与对应值进行二次聚合。在此过程中,INDEX、TAKE、DROP 等函数常用于精确提取所需列或去除冗余标题行。
5. 整体思路总结
尽管实现路径多样,但主流解法均遵循以下逻辑框架:
第一步:按主体字段(如客户)进行基础聚合,获取金额类多指标;
第二步:构造复合键(如客户+类别),提取唯一组合用于去重分析;
第三步:基于去重组件,执行 COUNTA(UNIQUE(...)) 类型的精细化统计;
第四步:清洗各模块数据(去标题、对齐行数),最终通过 HSTACK 合并输出。
数组公式:
其他答案:
周三:42-3 当日SKU 笔数 - 答案
知识点:
1. 核心方法:去重 + 计数
解决此类问题的根本逻辑是:先按条件提取数据 → 去除重复项 → 统计唯一值个数,标准公式模式为:COUNTA(UNIQUE(数据范围)),当该逻辑嵌套在分组聚合中时,需通过 LAMBDA 自定义函数将其封装为可迭代的计算单元,从而实现逐组计算每个客户(或主体)对应的不重复 SKU 数量。
2. 主流实现路径,主要有两类解法思路:
方法一:GROUPBY + LAMBDA 封装去重计数
使用 GROUPBY 按主键(如客户)分组,并在聚合函数中传入 LAMBDA(X, COUNTA(UNIQUE(X))),对每组内的 SKU 列表进行去重后计数。此方法结构清晰、效率高,是推荐的主流做法。
方法二:REDUCE + FILTER + VSTACK 实现手动迭代
利用 REDUCE 遍历所有唯一客户,结合 FILTER 筛选出对应 SKU,再执行 COUNTA(UNIQUE(...)) 并通过 VSTACK 逐行堆叠结果。此方法灵活性更强,适用于复杂筛选逻辑,但性能略低,适合小数据量场景。
3. 结果清洗:使用 DROP 去除无效行
无论采用哪种方法,生成的结果通常包含一个初始空行或标题行(尤其在 REDUCE 或默认 GROUPBY 输出中)。因此,必须使用 DROP(..., 1) 显式去除首行,确保输出数据的整洁性与可用性。此外,部分公式可能返回多余列,可通过 DROP(..., , 1) 去除第一列,保留关键结果。
数组公式:
其他答案:
周四:42-4 当日最大金额 - 答案
知识点:
1. 条件最值法:MAXIFS 直击问题本质
使用 MAXIFS 函数是最直观、易理解的解决方案。该函数专为“多条件最值查询”设计,语法简洁:MAXIFS(值区域, 条件区域1, 条件1),在此题中,直接以客户列为条件,金额列为求值目标,逐行计算每个客户的最大金额,逻辑清晰,适合初学者快速上手。
优点:语法简单、可读性强
注意:在大数据量下可能性能偏低,因需逐行重复计算
2. 聚合汇总法:GROUPBY 实现高效分组计算
通过 GROUPBY 对客户进行分组,并对金额列应用 MAX 聚合函数,一次性完成所有客户的最大值计算。该方法本质是“向量化运算”,避免了逐行扫描的冗余计算,显著提升处理效率,尤其适用于大规模数据集。
优点:运算效率高、结果结构规整
技巧:配合 DROP 去除标题行或无效列,保持输出整洁
3. 排序+查找法:SORT + VLOOKUP 实现最优性能
此为性能最优解法:首先按“客户升序 + 金额降序”对数据排序,确保每个客户的最大金额排在最前;然后使用 VLOOKUP 进行精确匹配查找,自动返回首个(即最大)金额值。该方法利用了“排序后去重即首项”的特性,实现一次排序、批量查询,兼具速度与稳定性,是处理此类问题的最佳实践。
优点:执行速度快、适用于大数据场景,关键:排序时需设置客户为升序(1)、金额为降序(-1)
MAXIFS 条件函数:小数据量、逻辑简单;
GROUPBY + MAX:聚合函数、中大型数据、需结构化输出;
SORT + VLOOKUP:排序查找、大数据量、追求性能极致;
推荐掌握顺序:先理解 MAXIFS,再掌握 GROUPBY,最终精通 SORT + VLOOKUP 的组合应用。
总结:本题虽目标简单,但揭示了Excel高阶数据处理的核心思想:从“逐行判断”走向“向量化运算”。掌握不同方法的适用边界,才能在实际工作中灵活选择最优解,提升分析效率与系统性能。
数组公式:
其他答案:
周五:42-5 当日TOP5客户金额汇总 - 答案
知识点:
本题考查的是一个典型且实用的业务场景:对每位客户,统计其金额排名前5的大额订单的总和。该问题融合了“分组筛选、聚合排序、TOP-N提取、递归拼接”等多个高阶数据处理环节,是Excel函数综合应用的代表性案例。
核心解题思路:
三层嵌套逻辑,所有解法均遵循统一的处理流程:筛选 → 聚合 → 排序 → 取前5 → 求和;即:按客户筛选所有关联订单→按金额聚合或排序(如按商品或订单分组)→降序排列后提取前5条记录→对这5条的金额求和→作为该客户的“TOP5汇总值”→最后将所有客户的结果统一整合输出。此逻辑广泛应用于客户价值分析、大单集中度评估、异常交易监控等场景。
2. 去重与聚合:UNIQUE 与 GROUPBY 的等效替换
在处理“客户+子项”结构时(如客户→商品、客户→订单号),需先对子维度去重或聚合,常见方式有两种:
使用 UNIQUE(HSTACK(...)) 构建唯一组合键;
或直接用 GROUPBY 对“客户+子项”进行金额汇总,实现“去重+聚合”一步完成。
两者可视数据结构灵活选择,GROUPBY 更高效,UNIQUE 更直观。
3. 结果整合:REDUCE + VSTACK 实现动态递归拼接
由于每位客户需独立计算其TOP5总和,无法通过单一数组公式直接向量化完成,因此必须借助:REDUCE + LAMBDA + VSTACK; 实现逐客户遍历并堆叠结果。这是现代Excel中处理“分组后复杂计算”的标准范式:
REDUCE 提供循环框架;LAMBDA(X,Y,...) 中 Y 遍历每个客户;内部使用 FILTER 筛出该客户数据,再进行排序、取TOP5、求和;VSTACK 将每次计算结果纵向拼接。最终通过 DROP(...,1) 去除初始空行,得到干净结果。
4. 性能优化:SORT + TAKE 的高效组合
在提取TOP5时,推荐使用:TAKE(SORT(数据, 金额列, -1), 5)
即先按金额降序排序,再取前5行。相比手动查找或多重判断,该方法简洁高效,且易于嵌套在复杂公式中。
学习建议:掌握 REDUCE + VSTACK 模式,是突破“Excel不能循环”的关键;熟练使用 SORT(..., -1) 实现降序取Top N;理解 GROUPBY 在“去重聚合”中的高效性,优于手动去重;
总结:“当日TOP5客户金额汇总”不仅是一道技术题,更是真实业务需求的缩影。它要求我们跳出单一函数思维,构建“数据流式处理”的整体架构。掌握此类技能,意味着你已从“会用函数”迈向“能建模型”的高阶阶段。
数组公式:
其他答案:
最后总结
第42周的主题层层递进,完整展示了如何从一份原始销售订单表出发,逐步构建出多维度、深层次的分析模型:
我们已经完成了从“会用函数”到“能建模型”的关键跨越。
学习建议:如何内化这些技能?
每日一练坚持复盘:不要只看答案,动手重写公式,理解每一层嵌套的意义;
尝试迁移应用场景:把“客户→SKU”换成“工厂→物料”,看看是否还能写出公式;
挑战性能优化:同一个问题,尝试用不同方法实现,比较执行速度与可读性;
建立个人函数模板库:将 COUNTA(UNIQUE())、REDUCE+VSTACK 等高频模式保存为代码片段,随时调用。感谢大家本周的积极参与!从作业提交情况来看,越来越多的同学开始使用 PIVOTBY、GROUPBY 和 REDUCE 等现代函数,进步非常明显!如有任何疑问,欢迎在群内交流,我们一起精进!—— 古老师