已收录

别再一个个筛选数零件了!一条聚合函数,517行BOM子件数秒出还自动排序

古哥计划
古哥计划 Lv.4 核心创作者KVP

Lv.4 核心创作者

大家好,我是古老师。

今天聊一个 BOM 管理里特别基础、但天天要用的活:判断每个父件下面有多少个子件。

一、为什么要数零件

在物料清单(BOM)里,每一个父件下面挂着多少个零件,这个数字不是看着玩的。

它直接决定后面 MRP 运算展开的工作量:父件子件数越多,需求展开、欠料计算、齐套分析要处理的数据量就越大。所以在做计划之前,先把每个父件的零件数摸清楚,是很有必要的一步。

最原始的做法是什么?打开筛选,一个一个看。

点开父件编码的筛选面板,勾选列表里有多少个编码,就代表有多少个零件。比如 GU-02-0009 下面有 8 个,GU-01-0002 下面有 5 个。

107 个父件,你就得点 107 次筛选。数完还得自己拿笔记下来,再手动排个序看谁最多。这么干一次两次还行,天天这么干,纯粹是在浪费生命。

二、一条公式,一键判断并排序

做法其实很简单:用聚合函数,对父件编码做分组,再用统计函数数数,一键出结果,还自动按零件数从多到少排好序。

517 行 BOM,107 个父件,一条公式,结果直接溢出:

零件最多的是 GU-04-0002,1.21kg古冻冰包-盒,17 个子件;第二名 16 个,第三名 15 个,一目了然。

公式1:PIVOTBY 二维聚合(本篇推荐)

=PIVOTBY(A2:B518,,A2:A518,COUNTA,,0,-3)

逐段拆一下:

  • A2:B518:行字段,父件编码+产品名称两列,作为分组依据

  • 第二个参数留空:列字段省略,不搞交叉表,直接出长表

  • A2:A518 + COUNTA:值区放父件列,用 COUNTA 数每一组有多少行,也就是子件个数

  • 最后的 -3:按计数结果降序排列,最多的排最前

这条公式的思路是:省去去重那些中间步骤,直接输出透视结果。速度快,效率高,唯一的门槛是需要新版本的 WPS 才支持。

公式2:GROUPBY 一维聚合

=GROUPBY(A2:B518,A2:A518,COUNTA,0,0,-3)

和 PIVOTBY 是一家人,一个偏二维透视,一个偏一维分组,函数不一样,思路完全一样:

  • A2:B518:按父件两列分组

  • A2:A518:值区放父件列

  • COUNTA:数每组的行数

  • 两个 0:第一个 0 不显示表头增强,第二个 0 关掉总计行

  • -3:按计数降序

两个 0 千万别省。我实测省略总计行参数后,结果末尾会多出一行"总计",后面接着做运算就会出乱子。

公式3:UNIQUE+COUNTIF 去重直数

=LET(p,UNIQUE(A2:B518),d,HSTACK(TAKE(p,,1),DROP(p,,1),COUNTIF(A2:A518,TAKE(p,,1))),SORT(d,3,-1))

这是不走聚合函数的路线,三个函数搭积木:

  • UNIQUE 先对 A2:B518 去重,拿到不重复的父件清单

  • COUNTIF 的第二参直接吃数组条件,一个一个父件去源表里数出现次数

  • HSTACK 把编码、名称、数量拼成表,SORT 降序

这条路线的优势是速度,517 行数据几乎瞬间出结果;短板是如果同一个父件下子件编码有重复行,它会重复计数,用之前要确认数据是干净的。

三、五个方法的全家福

除了上面三个,这次实测一共整理了 5 个思路独立的解法,还有一个先筛选去重再逐父计数的 MAP 路线(天然抗重复),和一个排序后组界差分的向量化路线(全程无遍历)。

选型口诀就一句话:

日常直接用方法 1 / 方法 2,最快,但前提是同父下子件不重复
;
数据有重复父件行,用 MAP 路线
;演示教学、讲思路,用方法 4、方法 5。

四、最后说一句

BOM 零件数这个信息,17、16 这些数字,后续 MRP 运算展开全都要用。

一个一个筛选去数,107 个父件就是 107 次点击;一条聚合函数,一次点击,结果还自动排好序。工具的差距不在难不难,在你想不想换个做法。

今天的公式建议直接抄进自己的 BOM 表里试一遍,父件列换成你自己的数据区域就行。

那你学会了吗?我是古老师,我们下期见。


术语解释

文章里出现的技术名词,一句话说清楚:

BOM(Bill of Materials,物料清单):工厂里一张"产品由什么组成"的清单,上面是父件(成品/半成品),下面挂着一层层子件(零件、原料)。

父件 / 子件:BOM 里的上下级关系。父件是装出来的东西,子件是装它用的零件。比如"果冻礼盒"是父件,里面那 17 种果冻、纸盒就是子件。

MRP(Material Requirements Planning,物料需求计划):根据订单和 BOM,把成品需求一层层展开算出"每个零件要买多少、什么时候买"的方法。

聚合函数:按某个字段分组后,每组算一个汇总值(求和、计数、平均)的函数,比如按父件分组数子件行数。

溢出:动态数组公式的结果自动铺满相邻空白单元格,不用下拉填充。

COUNTA:数"非空单元格个数"的统计函数,这里用来数每个父件下有几行子件。

UNIQUE:把一列或一片区域里重复的值去掉,只留不重复的清单。


古老师(古哥计划)|中小制造数字化专家|金山 KVP(金山办公最有价值专家)|金山多维表格应用场景专家|金山 WPS 社区优秀创作者

深耕中小制造业数字化落地,擅长用 WPS 多维表格 + AI 低代码方案,帮工厂快速搭建进销存、生产计划、质量追溯等轻量化系统。不用复杂 IT,低成本落地,已服务数百家制造企业,实战经验丰富。

#多维表格 #工厂管理 #AI应用

本文由 AI 辅助创作

工具:灵犀专业版

模型:GLM-5.3-Flash

湖北省
浏览 76
收藏
9
分享
9 +1
1
+1
全部评论 1
 
亂雲飛渡
点赞学习
   广东省
举报
0
0