您当前的位置:首页 >> 要闻 > > 
根据模具数分拆生产任务并展开派工单-02
来源: 个人图书馆-坚定前行      时间:2023-08-20 10:03:51

生昨天留下的题目是需要根据模具数自动分拆生产任务,而且还需要一键分发,生产一个派工单列表。先看第一个需求。


(相关资料图)

自动分拆:

需要实现模具自动分拆,需要先制定模具分拆的规则,模具数只有1的话,就不需要分拆,模具数超过1,就需要分拆。这里先写第一个判断,判断分拆订单的数量,规则就是模具数为1的就返回任务数,模具数超过1的话,用任务数除模具数

录入公式: =C3:C7/D3:D7,发现任务的分拆数量存在小数,为了把小数去掉,引用向下取倍数的函数,这里向下取100的倍数,再次

录入公式:=FLOOR.MATH(C3:C7/D3:D7,100),可以实现按模具自动分拆订单的确认数量。

尾数判断:

接下来就是判断尾数了,判断尾数其实就是余数查询,用MOD函数即可解决,录入公式:=MOD(C3:C7,E3#),得到余数的结果,也就是尾数,在根据尾数可以计算出需要分拆的任务数,录入公式:=IF(F3#=0,D3:D7,D3:D7+1),就得到如下图的结果:

到这里已经实现了按模具数自动计算出分拆任务数量了,但是这里的任务数有可能会变化,当数据有增加的时候,需要让公式自动填充,而不是提前把公式向下填充好或者有数据后再下拉公式。

自动填充:

这里就是引入筛选函数FILTER,这个函数是动态数组函数家族,当数据有变化的时候,体现到单元格中就是不为空,只需要用筛选函数筛选这一列的结果不为空就实现了动态数组引用。

录入公式:

=FILTER(B3:B1000,B3:B1000<>"")

=FILTER(C3:C1000,C3:C1000<>"")

=FILTER(D3:D1000,D3:D1000<>"")

以上公式的释义为:分别筛选B列、C列、D列中3到1000不为空的单元格。得到下图的结果。

而这些结果是可以继续用在函数的参数上面,形成新的动态数组,我们把原先写的公式替换一下。录入公式:

E3=FLOOR.MATH(FILTER(C3:C1000,C3:C1000<>"")/FILTER(D3:D1000,D3:D1000<>""),100)F3=MOD(FILTER(C3:C1000,C3:C1000<>""),E3#)

G3=IF(F3#=0,FILTER(D3:D1000,D3:D1000<>""),FILTER(D3:D1000,D3:D1000<>"")+1)

这样就形成一个全自动计算分拆数和派工单分拆的报表了,实现只更新任务数、数量、模具这三列信息,就可以全自动计算的功能。简单方便。效果如下图

一般标题中填充颜色为橙色的代表手工录入,黄色的代表公式自动生成的。这样后续看到标题的颜色就知道哪些数据是可更改的,哪些是不可更改的。

未完待续……

标签:

X 关闭

X 关闭

观点