|
接上文中說到,判斷最大展開項(xiàng)的問題,有了這個(gè)數(shù)字序號(hào)就可以配合篩選函數(shù)快速展開BOM物料清單了,只是這里不能直接用物料編碼展開,如果用物料編碼展開的話就會(huì)出現(xiàn)重復(fù)。 此時(shí)就需要用任務(wù)號(hào)來展開,通過任務(wù)號(hào)展開,根據(jù)最大展開數(shù)字進(jìn)行展開。舉例說明:如此任務(wù)號(hào)對(duì)應(yīng)的的母件有6項(xiàng),代表展開6行,對(duì)應(yīng)6個(gè)子件。展開一個(gè)任務(wù)號(hào)比較簡單,直接錄入函數(shù): =INDEX(C2,SEQUENCE(I2,,1,0)),通過生成數(shù)字函數(shù)SEQUENCE(I2,,1,0)生成一個(gè)連續(xù)的數(shù)組{1;1;1;1;1;1},配合引用函數(shù)就可以直接把任務(wù)號(hào)重復(fù)指定數(shù)字的重復(fù)數(shù)
通過觀察可以發(fā)現(xiàn),這個(gè)函數(shù)是沒有辦法向下填充的,所以還需要升級(jí)公式才能實(shí)現(xiàn)任務(wù)號(hào)C列的所有任務(wù)合并在一個(gè)單元格內(nèi)。此時(shí)需要配合REDUCE函數(shù)來實(shí)現(xiàn)。這個(gè)函數(shù)最難的就是定義 參數(shù)X和Y。 排程中的任務(wù)號(hào)是變量,所以指定Y代表任務(wù)號(hào),又因?yàn)槿蝿?wù)號(hào)是變量,所以這個(gè)Y還需要配合篩選函數(shù)來擴(kuò)大范圍。錄入函數(shù): =FILTER(C2:C2000,C2:C2000<>''),得到任務(wù)號(hào)這一列,函數(shù)的意思是篩選出任務(wù)號(hào)不為空的數(shù)據(jù)。 可以看到Y是一個(gè)區(qū)域,總共有6個(gè),Y1、Y2、Y3一直到Y6,根據(jù)Y1篩選出的第一個(gè)結(jié)果可以看得出,只需要把所有Y的結(jié)果用函數(shù)合并起來就可以了;
因?yàn)?span>REDUCE函數(shù)只能定義Y,所以這個(gè)函數(shù)中=INDEX(C2,SEQUENCE(I2,,1,0))的C2就是代表Y,I2這里就不能出現(xiàn)了,出現(xiàn)了就會(huì)出現(xiàn)問題,所以需要用Y來替代。只需要把I2更改為: =INDEX(C2,SEQUENCE(XLOOKUP(C2,C:C,I:I),,1,0)),這樣就實(shí)現(xiàn)了Y只出現(xiàn)一次; 再錄入函數(shù): =DROP(REDUCE('',FILTER(C2:C2000,C2:C2000<>''),LAMBDA(X,Y,VSTACK(X,INDEX(Y,SEQUENCE(XLOOKUP(Y,C:C,I:I),,1,0))))),1) 就把所有的任務(wù)號(hào)合并在一起來,配合XLOOKUP函數(shù)把物料編碼和相關(guān)的信息全部引用過來,錄入函數(shù): 計(jì)劃日期=XLOOKUP(P2#,C:C,A:A) 線體=XLOOKUP(P2#,C:C,B:B) 物料編碼=XLOOKUP(P2#,C:C,D:D) 系統(tǒng)物料名稱=XLOOKUP(P2#,C:C,E:E) 數(shù)量=XLOOKUP(P2#,C:C,F:F) 以上公式全部為動(dòng)態(tài)數(shù)組,可以一鍵更新。
到了這一步,就代表著任務(wù)按零件數(shù)量展開了,只是這只有母件的信息,沒有子件的信息,所以就需要用母件(物料編碼)信息去BOM表物料清單中找到對(duì)應(yīng)的子件信息和子件用量,再用子件用量乘以訂單數(shù)量,就可以計(jì)算出子件物料需求了。
不過對(duì)比BOM表是沒有辦法引用的,因?yàn)橐粚?duì)多了,所以需要合并才能引用,先在BOM表上加上輔助列,讓每個(gè)子件加上序號(hào)從而形成子件唯一值。 錄入函數(shù): =FILTER(B2:B20000,E2:E20000<>'')&'.'&O2#,其中 O2#公式為: =DROP(REDUCE('',DROP(UNIQUE(B2:B20000),-1),LAMBDA(X,Y,VSTACK(X,SEQUENCE(COUNTA(FILTER(B2:B20000,B2:B20000=Y)))))),1)
再去自動(dòng)分解這邊,同樣把序號(hào)和編碼加上去,錄入函數(shù): =Q2#&'.'&DROP(REDUCE('',FILTER(C2:C2000,C2:C2000<>''),LAMBDA(X,Y,VSTACK(X,SEQUENCE(XLOOKUP(Y,C:C,I:I),,1,1)))),1) 再用這個(gè)函數(shù)作為查找項(xiàng),用XLOOKUP來引用BOM表中的相關(guān)信息(子件編碼、子件規(guī)格、子件用量): =XLOOKUP(Q2#&'.'&DROP(REDUCE('',FILTER(C2:C2000,C2:C2000<>''),LAMBDA(X,Y,VSTACK(X,SEQUENCE(XLOOKUP(Y,C:C,I:I),,1,1)))),1),'1.BOM'!A:A,'1.BOM'!L:L)
上圖中就是全部數(shù)組公式,實(shí)現(xiàn)了一鍵同步。 未完待續(xù)……
我是古哥: 從事制造行業(yè)18年,在企業(yè)運(yùn)營、供應(yīng)鏈管理、智能制造系統(tǒng)等方面具有豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)。企業(yè)智能化,柔性化計(jì)劃運(yùn)營管理專家,擅長通過企業(yè)流程優(yōu)化規(guī)范,企業(yè)管理、導(dǎo)入計(jì)劃運(yùn)營提升企業(yè)效率;對(duì)提高企業(yè)準(zhǔn)時(shí)交貨率,降低企業(yè)庫存,輸出智能制造人才有豐富的經(jīng)驗(yàn)。學(xué)習(xí)PMC生產(chǎn)計(jì)劃,關(guān)注古哥計(jì)劃! |
|
|