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

古哥计划
古哥计划 Lv.2 潜力创作者KVP

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)

  1. MAXIFS 条件函数:小数据量、逻辑简单;

  1. GROUPBY + MAX:聚合函数、中大型数据、需结构化输出;

  1. SORT + VLOOKUP:排序查找、大数据量、追求性能极致;

推荐掌握顺序:先理解 MAXIFS,再掌握 GROUPBY,最终精通 SORT + VLOOKUP 的组合应用。

总结:本题虽目标简单,但揭示了Excel高阶数据处理的核心思想:从“逐行判断”走向“向量化运算”。掌握不同方法的适用边界,才能在实际工作中灵活选择最优解,提升分析效率与系统性能。

数组公式:

其他答案:

周五:42-5 当日TOP5客户金额汇总 - 答案

知识点:

本题考查的是一个典型且实用的业务场景:对每位客户,统计其金额排名前5的大额订单的总和。该问题融合了“分组筛选、聚合排序、TOP-N提取、递归拼接”等多个高阶数据处理环节,是Excel函数综合应用的代表性案例。

  1. 核心解题思路:

三层嵌套逻辑,所有解法均遵循统一的处理流程:筛选 → 聚合 → 排序 → 取前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 等现代函数,进步非常明显!如有任何疑问,欢迎在群内交流,我们一起精进!—— 古老师

广东省
浏览 1037
收藏
5
分享
5 +1
2
+1
全部评论 2
 
亂雲飛渡
点赞
· 广东省
回复
 
恰同学少年
· 黑龙江省
回复