已收录

欠料公式让AI写:4种思路全部秒出,还顺手告诉我10万行谁最快

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

Lv.4 核心创作者

生产计划里有一个躲不掉的场景:欠料判断。

库存200,第一天需求1000,欠多少?800。第二天需求1200呢?第三天没排产呢?手工算一天两天行,产品一多、日期一长,天天算就是灾难。

今天的做法是:让AI写。而且不是写一种,是写四种,全部云端实测跑通,还顺便回答了我一个问题——10万行数据,谁的速度最快。

一、场景:库存200,需求1000,欠多少

A列到E列是产品需求表,产品A四天需求1000/1200/0/1000。库存表里A产品200,D产品1400。

要的答案在右边:A产品四天的欠料矩阵。

  • 第一天:库存200,需求1000,欠800

  • 第二天:需求1200,累计缺口更大,但当天只欠1200

  • 第三天:没排产,不欠

  • 第四天:又欠1000

关键是它是动态的:库存从200改成3500,右边全部跟着变;需求从0改成600,欠料也立刻变成-600。一个公式,整片区域自动刷新。

二、方法1:MMULT上三角,向量化一步出全表

=LET(u,TRANSPOSE(SEQUENCE(4)),tri,--(SEQUENCE(4)<=u),b,B2:E5,st,XLOOKUP(A2:A5,G2:G5,H2:H5,0),p,st-MMULT(b,tri),HSTACK(A2:A5,IF(p>0,0,IF(p<-b,-b,p))))

拆开看就四步:

  • SEQUENCE(4)<=u 生成一个上三角0/1矩阵

  • MMULT(b,tri) 需求矩阵右乘上三角,一次算出每行到每天的累计需求

  • 库存用XLOOKUP广播,p=库存-累计需求

  • 三态判断收尾:不缺归0、欠则封顶当日需求

全程没有循环,这就是向量化的威力,也是它速度快的根本原因。

三、AI把另外三种也写了

这是我最想给你看的一张表——公式汇总。AI把每个方法的公式、精简思路、详细思路、推荐指数、功能限制全部写好了,按速度排序,带超链接直接跳转。

方法2,REDUCE按产品遍历(162字符):

=LET(g,A2:A5,HSTACK(g,DROP(REDUCE("",g,LAMBDA(X,Y,VSTACK(X,LET(a,Y,b,OFFSET(a,,1,,4),p,XLOOKUP(a,G2:G5,H2:H5,0)-SCAN(0,b,SUM),IF(p>0,0,IF(ABS(p)<b,p,-b)))))),1)))

逐产品压栈,SCAN做需求累计,思路最接近PMC手工账。

方法3,REDUCE按日期推进(236字符):

视角反过来:不按产品遍历,按日期列推进。每天看库存还剩多少,余额滚动,最贴近仓管员的账本直觉。

方法4,TOCOL长表压缩重组(253字符):

把二维需求压平成16行长表,SCAN累计后用XLOOKUP反查段首值,从累计口径反解出单日欠料,再WRAPCOLS折回二维。

四个方法,四个家族:矩阵映射、递推遍历、流式推进、压缩重组。思路不同才算新方法,这是我和AI约定的方法计数规则。

四、和AI讨论:MAX能不能替IF?

写完我不是直接收货,而是追问。欠料三态判断里IF出现了两层,我就问:能不能用MAX/MIN写?

欠料计算这里,除了用IF,用MAX判断是否可以?

AI验证的结论很有意思:

  • 非动态数组场景:可以。-MIN(MAX(-p,0),b) 这个数学单式完全成立

  • 动态数组场景:失效。WPS的MAX/MIN对数组是聚合,MAX(-p,0)返回的是整个数组最大值的一个标量,不是逐元素比较——公式不报错,结果静默全错

数组层硬要用MAX,只有ABS恒等式绕路,字符更长、可读性更差。所以结论:云端动态数组统一用 IF(p>0,0,IF(p<-b,-b,p)),比ABS版还少一步。

这个坑不追问永远不会知道,因为静默错误不报错。

五、10万行谁最快?

讨论到最后,我问了最关键的问题:10万行数据,哪个方法最快?

AI的推算结论:

  • MMULT上三角(方法1)大概率第一:O(16n),零LAMBDA零循环

  • REDUCE按日期推进(方法3)次选:LAMBDA只调用天数次

  • 带堆叠(VSTACK逐行压栈)的直接出局:10万行堆叠会产生千万级行的运算量,直接卡死

所以总结的来讲,10万加只要带堆叠的,基本上都会卡死。

要不要实测?AI说用Python写个压测脚本就行,这个后面专门出一篇。

六、越训练越快:方法论的沉淀

这套东西不是我今天聪明,是训练出来的。

表头格式、填充色、边框、目录超链接,全部是AI写的。我做的只有三件事:说场景、看结果、追问。

踩过的坑——MAX/MIN聚合、REDUCE展平、T()不是转置——全部沉淀进了AI的项目记忆和技能库。下次我只要说出触发词:欠料、合并单元格、不规则合并,AI直接按沉淀好的方法论秒出,不用从头试错。

AI时代:训练AI,让AI写公式。

今天用的模型是GLM-5.3 Flash,0.11倍价格,写这种复杂度绰绰有余。

最后说一句

PMC学欠料判断,重点已经不是背公式了。公式AI几秒写完,还带速度评测和功能限制。你要练的是把场景说清楚、把结果验明白、把追问问到底。

多训练,多追问,你的AI才会越来越懂你的表格。


术语解释

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

动态数组:一个公式自动向下向右溢出整片结果的写法,改一个数全表跟着变。

向量化:整列整块数据一次运算搞定,不逐格循环,速度是循环写法的几十倍。

MMULT:矩阵乘法函数,Excel/WPS里做"需求矩阵×上三角"这种整块运算用它最快。

REDUCE:循环遍历函数,像流水线一样把每个元素依次喂给一段逻辑,最后压成一个结果。

SCAN:累计器,把一列数依次累加,比如把每天需求滚成"到本日为止的累计需求"。

XLOOKUP:查找函数,拿着产品名去库存表里找对应数量,找不到可指定兜底值。

OFFSET:以某个单元格为基准偏移取区域,写法灵活但拖慢全表重算。

O(16n):复杂度记号,数据量翻倍时间跟着翻倍左右;对比O(n²)那种平方级增长,大数据下差距是秒和天的区别。


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

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

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

本文由古老师与 WPS 灵犀(AI)协作完成:场景设计、公式验证与方法论把关由古老师负责,初稿撰写与公式解析由 AI 辅助生成,全部内容经古老师审核修正后发布。

#AI创作声明

浏览 108
收藏
10
分享
10 +1
+1
全部评论