excel学习库

excel表格_excel函数公式大全_execl从入门到精通

生产计划在Excel中全自动按需要分解所排产工单


昨天分享了在Excel中按需求自动分拆工单的方法,这个方法就是把表1的工单分解成多张工单,只能是平均分配,因为没有考虑有尾数,实际情况是会有尾数的,如3500,分解成3张1000的工单,和一张500的余数工单;

今天就分享如果需要按整数和余数来分拆工单的函数方法, VBA当然可以,但是学习成本高,需要有代码能力,而且源数据发生变化时候,不懂代码很难修改;

其实写完就觉得太长了公式,这里只做研究讨论,如能够简化函数公式的请回复,公式如下:

=IF(MOD(SEQUENCE((COUNTA(A:A)-1)*MAX(E:E))-1,MAX(E:E))+1<=VLOOKUP(INDEX(A:A,INT((SEQUENCE((COUNTA(A:A)-1)*MAX(E:E))-1)/MAX(E:E)+1)+1),A:E,5,0),IF(VLOOKUP(INDEX(A:A,INT((SEQUENCE((COUNTA(A:A)-1)*MAX(E:E))-1)/MAX(E:E)+1)+1),A:D,4,0)<>0,IF(MOD(SEQUENCE((COUNTA(A:A)-1)*MAX(E:E))-1,MAX(E:E))+1

思考方向

看上面的公式可能会比较晕,分解后的思路如下:

1. 判断没有尾数的订单;

2. 过滤多余工单数

3. 判断余数的最后位置,因为尾数一定在最后

4. 通过两层IF再次判断;

5. 通过筛选函数自动分拆;

最后分享公式:

1. F6=COUNTA(A:A)-1

2. G6=MAX(E:E)

3. H6=SEQUENCE(F6*G6)-1

4. I6=H6#/G6+1

5. J6=INT(I6#)

6. K6=INDEX(A:A,J6#+1)

7. L6=INT((SEQUENCE(F6*G6)-1)/G6+1)

8. M6=MOD(SEQUENCE(F6*G6)-1,G6)+1

9. N6=VLOOKUP(K6#,A:E,5,0)

10. O6=M6#<=N6#

11. P6=IF(O6#,VLOOKUP(K6,A:C,3,0),"")

12. Q6=VLOOKUP(K6#,A:D,4,0)<>0

13. R6=M6#

14. S6=IF(R6#,VLOOKUP(K6#,A:D,3,0),VLOOKUP(K6#,A:D,4,0))

15. T6=IF(Q6#,S6#,VLOOKUP(K6#,A:C,3,0))

16. U6=IF(O6#,T6#,"")

我是古哥:

从事制造行业18年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验。企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能制造人才有丰富的经验。学习PMC生产计划,关注古哥计划!

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接