网站首页 > 文章精选 正文
接上文,已经设计好表3的工单号根据表1的输入的工艺流转卡的项数自动展开的层级,接下来就是需要通过零件对应的工艺数展开并堆积。这个过程可以理解为把工艺流转卡从二维形态转成一维的数据形态。
引用工单信息
已知工单号是唯一项,所以可以通过工单号引用表2中生产计划待排订单中的相关信息过来。分别录入函数:
零件:=XLOOKUP(S3#,'2.计划'!B:B,'2.计划'!C:C)
数量:=XLOOKUP(S3#,'2.计划'!B:B,'2.计划'!D:D)
工艺顺序:=MAP(T3#,LAMBDA(X,COUNTIFS(T3:X,X))) ,动态数组公式,判定工艺的顺序,生成一个顺序数组1,2,3,……;
工艺二维转一维
上面已经把工单的信息引用过来了,现在需要把工艺流转卡的二维数据转成一维数据,为了方便理解思路,这里继续用分步写公式的步骤告诉大家,全自动动态数组的应该如何写函数。
使用工艺:=TOCOL(E3#)
工艺名称:=TOCOL(E2#&EXPAND("",ROWS(D3#),,"")),这个公式是筛选TOCOL连接空单单元格的思路,是一个经典的思路.ROWS是判断有多少行,D3#也是一个动态数组,有3行,返回数字3,通过Expand 展开3行空单元格的数组;
用函数HSTACK合并两列后再通过筛选第二列不为0来返回工艺名称。
合并两列公式:
=HSTACK(TOCOL(E2#&EXPAND("",ROWS(D3#),,"")),TOCOL(E3#))
筛选第二列不为0的公式:
=LET(B,TOCOL(E3#),A,HSTACK(TOCOL(E2#&EXPAND("",ROWS(D3#),,"")),B),FILTER(INDEX(A,,1),B<>0))
公式释义:
为了避免公式多次引用,用了两个定义名称,其中B,代表合并后的使用工艺,A代表合并了两列的结果。最后用FILTER(INDEX(A,,1),B<>0),来筛选B不为0的结果,显示A的第1列;
得到结果:
其中合理的利用LET函数定义名称,可以有效的减少公式的长度,同时也能够使得公式运算的效率得到大大的提升。
工艺的交期拉动
费了这样多功夫把工序分解,就是希望精细化排程,每一道的工序时间都需要预留一定的前置期,这里假设以拉动式的排程作为基准来判断各个工序的交期。
首先先定义好各工序的前置期时间,这里假设都为1天,也就是每道工序都预留1天。如交期是T天的话,有5道工序,从第1道开始就是T-1,第2道就是T-2,一直类推,效果如下图所示:
交期拉动公式设置
为了实现交期拉动的效果,就需要生成一组逆向的工艺数组,从原来的1,2,3……5;变成5,4,3……1;有了这样的逆向数组,就可以通过引用交期减去这个数组得到工序的拉动交期。
录入函数:
=DROP(REDUCE("",D3#,LAMBDA(X,Y,VSTACK(X,SEQUENCE(Y,,Y,-1)))),1)
通过工艺数得到工艺逆向数组;
交期:
=XLOOKUP(S3#,'2.计划'!B:B,'2.计划'!E:E)-Z3#
合并公式:
=XLOOKUP(S3#,'2.计划'!B:B,'2.计划'!E:E)-DROP(REDUCE("",D3#,LAMBDA(X,Y,VSTACK(X,SEQUENCE(Y,,Y,-1)))),1)
表3 已经完全设计完成了,通过表2的待排计划排程表,自动生成右边的一维排程表,同时兼顾了二维数据与一维数据,为方便后面按工序排程做好了数据基础;
未完待续……
我是古哥:
从事制造行业18年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验。企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能制造人才有丰富的经验。学习PMC生产计划,关注古哥计划!
- 上一篇: 数字转整形骚操作
- 下一篇: 161 动态数组建模《多工序自动转换排程表》-01
猜你喜欢
- 2025-04-27 C# - 初识数组 033
- 2025-04-27 LeetCode-448-找到所有数组中消失的数字
- 2025-04-27 「算法」几分钟时间让你彻底学会—时间复杂度
- 2025-04-27 Vlookup一次性查找多个值,4种方法,你更喜欢哪种?
- 2025-04-27 用long类型让我出了次生产事故,写代码还是要小心点
- 2025-04-27 C语言实现从数组中随机选取并返回一个元素
- 2025-04-27 Excel如何运用INDEX+SMALL+IF数组函数进行第几次查找
- 2025-04-27 一式取数!教你如何快准狠地提取单元格里面的数字
- 2025-04-27 怎样的数组在手机号里容易让孩子成绩不稳定呢?
- 2025-04-27 正则表达式学习之替换分组练习
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)