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

Lv.4 核心创作者
排产前先数零件:一个点号,公式管到5万行
大家好,我是古老师。
排产的时候,我有个雷打不动的习惯:先把每个生产任务的零件数数一遍。
不是看产量,不是看交期,先看零件。
为什么?因为零件越多,产品越复杂——这背后是一整套排产逻辑。今天把这套习惯拆开讲清楚,一共四个问题:为什么要看子件、为什么要先定义名称、为什么要用语法糖、自动裁剪到底好在哪里。
一、🔍 为什么排产前要看子件
子件数量,是产品复杂度的第一个信号。
同样一批工单,5个子件的产品和8个子件的产品,排起来完全是两回事:
齐套点成倍增加:5个零件就是5个齐套点,缺任何一个,整单都开不了工。子件8个的产品,齐套难度不是多60%,是按木桶效应翻着涨
工序跟着变长:每个子件背后至少一道工序,装配路径拉长,工单在车间流转的时间也拉长
异常排查面变大:出了问题,8个子件的产品要从8条线索里找病根,5个子件的产品只要查5条
所以我导出物料清单之后,第一件事就是快速判断:这批排程任务里,哪个产品零件最多,哪个最复杂。先盯谁、先备谁,心里先有数。
这次案例的数据结构:左边是父子型BOM长表,517行,A列父件编码、C列子件编码;右边是MPS计划,8条工单,存货编码在K列。要做的,就是在O列把每条工单的子件数量算出来。
二、🧮 一个统计函数就搞定
判断子件数量,最好的方法论是统计函数。
父件出现几行,就有几个子件
。
所以逻辑就一句话:拿存货编码,去物料清单里数出现次数。
公式:子件数量
=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,…)——把引用区域先定义成名称,后面全部用名称来写。
这是我写公式的一个固定习惯:所有能定义的引用区域,全部放到公式开头,后面一律用名称替代。
好处有三个:
公式结构一眼看穿。=COUNTIF(A,K) 读出来就是"在A里数K",不用在一堆 $A$2:$A$50000 里找逻辑
区域只维护一处。哪天物料清单从A列挪到B列,只改LET里的定义,函数主体一个字不动
重复引用不重复写。后面要做复杂判断,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万行之内,公式自动扩展,一个字都不用改。
过去:每次数据变化,重新框选范围、重新填充公式;遇到忘了改的表,第二天对着半截数据找原因。
现在:公式定义一次,表格自己长。
。
最后说一句
今天的知识点就两个:
语法糖裁剪区域,实现动态数组自动扩展——冒号右边加点号,预留5万行,自动裁剪
判断零件数量的最好方法论是统计函数——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 超高