已收录

181个子件哪种敢备库存?AI挖出5条公式,最短85个字符

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

Lv.4 核心创作者

🤯181个子件哪种敢备库存?AI挖出5条公式,最短85个字符

做PMC的,谁没在备库存上栽过跟头?

领导丢来一句"库存备足点",你就开始赌:这种料多备些,那种少备些。赌对了没人提,赌错了,要么仓库堆成山,要么产线等米下锅。

其实备不备、备多少,答案就藏在BOM里。我让AI一口气写了5条公式,517行BOM、181个子件,几秒钟分清谁共用、谁专用,最短一条只有85个字符。

一、先分清:共用件和专用件

原始数据是一张父子型BOM长表:父件编码、父件名称、子件编码、子件名称、单位、单位用量,一共517行。

同一个子件编码,会出现在好多父件下面。

判断标准一句话:被1个父件引用,是专用件;被多个父件一起用,是共用件。

先纠正一个叫法——行业里建议说"共用件",别叫"通用件"。万一你的客户是整车厂,"通用件"容易被听成通用零件,差之千里。

这517行里,181个唯一子件,专用件112个,共用件69个。被引用最多的一个子件,挂在32个父件下面。

PMC算这个干什么?安全库存策略。

共用件被的父件越多,需求越分散,这边少一点那边多一点,此消彼长,
备货风险越低
;专用件只伺候一个父件,父件一改款一停产,立马变
呆滞库存
。

说白了,共用程度就是备货的胆量:共用越广越敢备,专用件按单采购最稳。

二、方法1:条件计数直数(103字符,速度98)

场景:电子厂、包装厂、食品厂都一样,BOM里子件重复挂在不同父件下,要按子件汇总被引用次数。

AI的思路:先把子件编码去重,再回原列数每个编码出现几次,出现次数就是被几个父件引用。

公式:子件被引用次数与共用判定

=LET(c,UNIQUE(C2:C518),n,COUNTIF(C2:C518,c),HSTACK(c,XLOOKUP(c,C2:C518,D2:D518),n,IF(n=1,"专用件","通用件")))
  • UNIQUE:把C列子件编码去重,拿出181个唯一子件

  • COUNTIF:拿这181个值回到C列数出现次数,一次引用就是一个父件

  • XLOOKUP:按编码补上子件名称

  • IF:次数等于1判专用件,大于1判通用件

103个字符,速度98分,全场最快。小提醒:公式里输出写的是"通用件",你抄的时候可以直接改成"共用件",跟行业叫法对齐。

三、方法2:分组聚合(85字符,全场最短)

AI的思路:既然是"按子件分组数父件",那就直接交给分组聚合函数,一条公式连判定带排序全包了。

公式:分组聚合一步到位

=LET(A,GROUPBY(C2:D518,A2:A518,COUNTA,,0,-3),HSTACK(A,IF(TAKE(A,,-1)=1,"专用件","通用件")))
  • GROUPBY:按子件编码+名称两列分组,对父件列计数,计数结果就是被引用次数

  • 第5参数填0:不出总计行,多一行总计判定列就乱套

  • 第6参数填-3:按引用数从大到小排,共用最多的子件排最前面

  • TAKE:取出引用数那一列,等于1判专用件,否则通用件

85个字符,最短纪录,还自带降序排序。

四、方法3:排序定位(134字符,速度90)

AI的思路:排序让相同子件挨在一起,头尾位置一减,次数就出来了。

公式:排序后头尾定位差值

=LET(s,SORT(C2:C518),c,UNIQUE(s),f,MATCH(c,s,0),l,XMATCH(c,s,0,-1),n,l-f+1,HSTACK(c,XLOOKUP(c,C2:C518,D2:D518),n,IF(n=1,"专用件","通用件")))
  • SORT:先排序,让相同子件在列里相邻

  • MATCH:找每个子件第一次出现的位置

  • XMATCH:第4参数填-1,从尾往头找最后一次出现的位置

  • 尾减头加1:段长就是出现次数

五、方法4:组界差分(198字符,速度88)

AI的思路:不遍历,直接标记每一组的边界行号,首尾相减算次数,全程向量化。

公式:标记组界行号差分计数

=LET(s,SORT(C2:C518),e,(VSTACK(DROP(s,1),"")<>s)*1,pos,FILTER(SEQUENCE(ROWS(s)),e=1),st,VSTACK(1,DROP(pos,-1)+1),n,pos-st+1,c,INDEX(s,pos),HSTACK(c,XLOOKUP(c,C2:C518,D2:D518),n,IF(n=1,"专用件","通用件")))
  • 组界标记:下一行不等于当前行,说明一组结束

  • FILTER:把组界行号筛出来

  • 首尾相减:每组结束行减开始行加1,就是组内行数

  • INDEX:按位置取出子件编码

向量味最浓,字符也最长,198个,适合喜欢一屏看懂整段逻辑的人。

六、方法5:逐个筛选遍历(133字符,速度70)

AI的思路:最笨也最直白——每个子件,去原列筛一遍、数一遍。

公式:遍历筛选逐个计数

=LET(c,UNIQUE(C2:C518),n,MAP(c,LAMBDA(x,ROWS(FILTER(A2:A518,C2:C518=x)))),HSTACK(c,XLOOKUP(c,C2:C518,D2:D518),n,IF(n=1,"专用件","通用件")))
  • MAP:对每个唯一子件跑一遍自定义计算

  • FILTER+ROWS:筛出C列等于它的所有行,数行数就是被引用次数

谁都能看懂,还能顺手加复杂条件,但181个子件等于全列筛181遍,速度只有70分,大表慎用。

七、方法对比

排名

方法

长度

精简思路

推荐

1

条件计数直数

103

去重后条件计数,查找补名称,判断定

★★★★★

2

分组聚合

85

按子件分组数父件,负3降序,取末列判定

★★★★☆

3

排序定位

134

排序相邻,头定位尾定位,差值加1

★★★★☆

4

组界差分

198

标记组界行号,首尾相减,全程不遍历

★★★★☆

5

逐个筛选遍历

133

每个子件筛一遍数一遍,最直白最慢

★★★☆☆

五条公式结果完全一致:181个子件,专用112、共用69,最大引用数32。

选型口诀:
要最快
,条件计数直数;
要最短
,分组聚合;要保源表顺序,选方法1、3、5;几十万行的大表,
别碰方法5
。

八、避坑清单

  • "被引用次数"的语义是子件出现在几个父件下,不是用量加总,判定以它等于1为准

  • 同一父件下同一子件出现多行,条件计数会多计,先确认BOM里有没有重复行

  • 分组聚合第5参数记得填0,不然冒出一行总计,判定列直接乱套

  • 方法3、4依赖排序后同子件相邻,源数据乱序时差值会错

  • 反向定位函数第4参数填-1才是从尾往头找,漏了永远找到第一次

  • 合并类函数结果超32767字符会报错,这条链路用横向堆叠没事,别画蛇添足换长文本拼接

最后说一句

以前分共用专用,筛选按到手酸,181个子件要筛181遍;现在一条公式几秒出结果,共用数量直接告诉你备货的胆量有多大。

这是「AI写表格公式」日课第9天,每天一个PMC高频场景,AI写、我验,最后封装成技能。

你家BOM里,共用件多还是专用件多?评论区报个数。想要完整公式清单的,评论区扣「公式」。


术语解释

BOM(Bill of Materials,物料清单):一张表写清楚一个产品由哪些零件、材料组成,各用多少。

父子型BOM:一行记录"哪个父件用了哪个子件、用多少",一个产品拆成好多行,像家谱一层套一层。

共用件:被多个产品一起用的物料,比如同一种螺丝,几十个产品都在用。

专用件:只被一个父件用的物料,父件改款它就跟着报废。

呆滞库存:放在仓库里没人领、越放越贬值的物料。

安全库存:为防断货多备的那部分库存,备多了压钱,备少了停线。

动态数组函数:WPS表格里的新式函数,一条公式自动溢出一串结果,不用再拖几百行填充。


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

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

#AI写表格公式 #动态数组 #PMC #安全库存 #共用件


本文由 AI 辅助创作

工具:灵犀专业版

模型:GLM-5.3-Flash 超高

浏览 61
收藏
8
分享
8 +1
+1
全部评论