排产前先数零件:一个点号,公式管到5万行

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

Lv.4 核心创作者

排产前先数零件:一个点号,公式管到5万行

大家好,我是古老师。

排产的时候,我有个雷打不动的习惯:先把每个生产任务的零件数数一遍。

不是看产量,不是看交期,先看零件。

为什么?因为零件越多,产品越复杂——这背后是一整套排产逻辑。今天把这套习惯拆开讲清楚,一共四个问题:为什么要看子件、为什么要先定义名称、为什么要用语法糖、自动裁剪到底好在哪里。


一、🔍 为什么排产前要看子件

子件数量,是产品复杂度的第一个信号。

同样一批工单,5个子件的产品和8个子件的产品,排起来完全是两回事:

  • 齐套点成倍增加:5个零件就是5个齐套点,缺任何一个,整单都开不了工。子件8个的产品,齐套难度不是多60%,是按木桶效应翻着涨

  • 工序跟着变长:每个子件背后至少一道工序,装配路径拉长,工单在车间流转的时间也拉长

  • 异常排查面变大:出了问题,8个子件的产品要从8条线索里找病根,5个子件的产品只要查5条

所以我导出物料清单之后,第一件事就是快速判断:这批排程任务里,哪个产品零件最多,哪个最复杂。先盯谁、先备谁,心里先有数。

这次案例的数据结构:左边是父子型BOM长表,517行,A列父件编码、C列子件编码;右边是MPS计划,8条工单,存货编码在K列。要做的,就是在O列把每条工单的子件数量算出来。

二、🧮 一个统计函数就搞定

判断子件数量,最好的方法论是统计函数。

父子型BOM里,
父件出现几行,就有几个子件
。

所以逻辑就一句话:拿存货编码,去物料清单里数出现次数。

公式:子件数量

=LET(A,A2:.A50000,K,K2:.K50000,COUNTIF(A,K))
  • A2:.A50000:物料清单所在的A列(父件编码)

  • K2:.K50000:MPS计划的存货编码列

  • COUNTIF(A,K):拿K列每个编码,去A列里数出现次数

一个函数,8条工单的子件数量一次算完:5、8、6、7、7、8、8、2。

【截图②:O2输入公式回车后,O列8行结果 5/8/6/7/7/8/8/2】

对照着看:8个子件的产品是这批任务里最复杂的,排产优先盯齐套;2个子件的袋装产品最省心,随手就能排进去。排产的优先级、盯控重点,一眼就有数了。

这里插一句:为了验证这个思路的边界,我让AI把同一个问题写了8种方法——聚合法、转置法、二分法,每一种都有自己的适用约束。但跑下来,速度最快、最稳的还是向量化统计,就是上面这个COUNTIF。方法论归方法论,干活就选最顺手的那个。

三、🏷️ 为什么要先定义名称

细看这个公式,开头是 LET(A,…,K,…)——把引用区域先定义成名称,后面全部用名称来写。

这是我写公式的一个固定习惯:所有能定义的引用区域,全部放到公式开头,后面一律用名称替代。

好处有三个:

  1. 公式结构一眼看穿。=COUNTIF(A,K) 读出来就是"在A里数K",不用在一堆 $A$2:$A$50000 里找逻辑

  1. 区域只维护一处。哪天物料清单从A列挪到B列,只改LET里的定义,函数主体一个字不动

  1. 重复引用不重复写。后面要做复杂判断,A列要引用三五次,名字一提,公式不至于膨胀到没法看

说白了,定义名称就是给公式先声明变量。变量先声明清楚,后面的逻辑才干净。

四、🍬 为什么用语法糖:一个点号的讲究

再看A列的定义:A2:.A50000。

冒号右边这个点号,就是最新的语法糖写法。它的作用是自动裁剪。

先说为什么不用固定范围。如果写成 K2:K9,8条工单刚好填满:

明天排了9号任务、10号任务,公式引用不到,结果列直接空着——表格不改公式,新数据就成了半成品。

那直接预留大范围,写成 A2:A50000 呢?

行,但5万行里有49000多行是空的,旧写法会把整段空白都算进公式,白白拖慢运算。

语法糖就是解决这个矛盾的:范围写大(预留到5万行),实际只取有数据的那一段。

  • 冒号右边加一个点号:A2:.A50000

  • 公式引用时自动裁掉空行——5万行的"壳",517行的"芯"

为什么预留5万行?这是我的经验临界点:常规公式写到5万行以上,运算就明显卡了。5万行以内的预留,既管够了数据增长,又不拖累表格。再往上,就得老老实实写成向量化公式。

【截图⑤:编辑栏 A2:.A50000 点号写法特写】

五、🚀 自动裁剪的好处:一劳永逸

语法糖+定义名称+统计函数,三件套凑齐之后,这个公式就"活"了。

演示一下:工单先排4条,然后往下追加到8条、10条,随便加多少条——

5万行之内,公式自动扩展,一个字都不用改。

过去:每次数据变化,重新框选范围、重新填充公式;遇到忘了改的表,第二天对着半截数据找原因。

现在:公式定义一次,表格自己长。

公式的耐用程度,取决于你有没有为"明天的数据"留好接口
。

最后说一句

今天的知识点就两个:

  1. 语法糖裁剪区域,实现动态数组自动扩展——冒号右边加点号,预留5万行,自动裁剪

  1. 判断零件数量的最好方法论是统计函数——COUNTIF(物料清单, 存货编码),动态数组一次算完

排产先看子件,这个动作本身花不了30秒,但它决定了你后面几个小时的排法:先盯谁、先备谁、先查谁。

复杂度判断,是排产的第一道管理动作,不是一个Excel技巧。


术语解释

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

BOM(Bill of Materials,物料清单):记录一个产品由哪些零件组成的清单,工厂里一般就叫"物料清单"。

父子型BOM:两列式的物料清单——一列父件(产品)、一列子件(零件),一行就代表"这个产品用了这个零件"。产品有5个零件,就是5行。

MPS(Master Production Schedule,主生产计划):排产的总计划表,决定每个时段生产什么、生产多少,表格里常见形态就是"工单号+存货编码+数量+排程日期"。

语法糖:让写法更简单、但功能不变的新语法。本文的 A2:.A50000 就是用一个点号,替代了原来要装插件才能做的区域裁剪。

动态数组:一个公式算出一片结果,自动溢出到相邻单元格,数据变了结果跟着变,不需要下拉填充。

COUNTIF:条件计数函数,数某个值在一片区域里出现了几次。


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

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

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


本文由 AI 辅助创作

工具:灵犀专业版模型:GLM-5.3-Flash 超高

广东省
浏览 212
收藏
4
分享
4 +1
+1
全部评论