255 WPS新功能案例 複雜的產品底材計算

Mondo 科技 更新 2024-01-31

2024年最後一天,我接到某工廠生產計畫的需求,他們工廠的物料拖欠很難計算,因為工廠比較小,沒有資訊化,所以物料需求和材料欠款都是手工計算的。

要求:表1是一些需要組裝的產品,有組裝順序,現在需要根據這些組裝產品的零件(表2物料清單)和相應的零件庫存(表3)來計算實際可以組裝的數量,如果沒有,組裝好的零件間隙名稱是什麼?裝配零件的間隙數量是多少?

由於裝配中的許多零件使用相同的零件,因此需要考慮實際裝配數量,以便按順序反映在相應的零件裝配數量中。 例如,如果在裝配序列 1 中使用了 500 個零件,但在裝配 2 之後,可能無法在實際零件中使用 400 個零件,並且只能裝配間隙為 100 個零件的 300 個零件。 可以體現在缺口的名稱和相應的缺口數量上。

因此,流行的需求點是告訴生產計畫什麼可以生產,什麼不能生產,什麼不能生產,欠什麼?你欠多少錢?

圖1 表2是這些組裝好的產品的物料清單,看到這樣的物料清單(BOM)也是很痛苦的,這也是中小工廠的一些特點,基本形式不規範,以後很難做資料分析和整理。

圖 2 和表 3 顯示了零件庫存,這是乙個標準的一維資料表。

圖3 表2是零件的物料清單,即BOM表,如果要將表1的生產進度表和表2的物料清單鏈結起來,則無法鏈結當前BOM表,因此需要對現有的BOM表進行整理。 組織成乙個標準的一維表格。

插入輔助列,將其命名為程式集名稱,然後輸入函式:

b3=if(c3="","",if(c2="零件名稱",d2,b2)),下拉填充。

功能解釋:此步驟的目的是將裝配名稱放在BOM表的左側,與表1形成聯動,帶出訂單需求。

如果單元格 C3 為空,則返回 null 值 ()"")。

如果單元格 C2 的值等於"零件名稱",則返回 D2:38281040190。

如果單元格 c2 的值不等於"零件名稱",B2:"程式集的名稱"。

這樣,根據相對參照原理,下拉填充一鍵將裝配體名稱填充到零件右側。

根據此程式集,參考表1中的排程順序,輸入函式:

if(b3="","", xlookup(b3, 計畫發布!B:B,計畫發布!a:a,0))

然後參考零件清單:

if(b3="","", xlookup(d3, 庫存數量!c:c,庫存量!d:d,0))

這樣可以組織 BOM。

最終結果如下圖 4 所示

圖4 在底材的計算中,需要對錶2中裝配名稱對應的零件的物料清單資料進行第二次梳理,即兩個約束:

約束 1:零件按原樣組裝在一起。

約束2:在同一零件**中,順序按照排程順序公升序排列,即按上述要求優先扣除排在第一位的裝配體。

根據以下兩個約束條件輸入函式:

sort(sort(filter(b3:f5000,(b3:b5000<>"")*(d3:d5000<>"-")),5),3)

功能定義:過濾b列不為空且d列不等於符號“-”的資料,顯示的結果為b列到f列,然後根據此結果進行排序,第一次排序為第5列,排序方式為公升序,即排程順序,第二次排序為第3列, 也就是說,零件,排序方法也是公升序的。兩種排序等效於上述兩個約束。 效果如下圖5所示

上面圖5中的公式是乙個大動態資料,為了方便後續的二次寫入功能,配合choosecols將其劃分為單列動態陣列,依次輸入1到5和5公式的引數

choosecols(sort(sort(filter(b3:f5000,(b3:b5000<>"")*(d3:d5000<>"-")),5),3),1)

choosecols(sort(sort(filter(b3:f5000,(b3:b5000<>"")*(d3:d5000<>"-")),5),3),2)

判斷供不應求的大邏輯是從庫存中減去需求,在減去需求的同時考慮扣單,比如庫存400,第一需求700,操作-300,第二需求300,累計少付-600,單項需求-300。 分別輸入以下功能:

訂購要求:xlookup(i3,預定發布!B4:B12,計畫發布!c4:c12),需要組裝的程式集數。

累計需求:sumifs($m$3:m3,$k$3:k3,k3),這是該部分對應的累計需求,如果有通用零件:A和B訂單共享C部分,C對應A的需求量為200,B的需求量為300,累計需求量為500。

累計物料短缺:IF(L3-N3>0,0,L3-N3),傳送庫存的累計需求,大於0,顯示為0;

單片底材:如果(abs(O3)可以組裝:

if(countifs($p$3:$p$60,"<0",$h$3,h3)>0,0,m3),乙個裝配體必須沒有底材,即沒有負底材,才能組裝,如果沒有底材,則返回m3,m3為裝配需求。最終結果如下圖 6 所示

圖6 表1為生產計畫排程主表,根據物料清單計算的未完成物料資訊可在此表上使用。

可組裝的實際單元數。

xlookup(b4:b12,零件裝配表!I:I,零件裝配臺!q:q)

裝配零件缺口名稱:

textjoin(",",,filter(零件裝配表!$k$3 , (零件組裝臺!$i$3 = b4)*(零件裝配臺!$p$3:$p$60<0)))

裝配零件間隙數量:

textjoin(",",,filter(零件裝配表!$p 3 美元:$p 60 美元,(零件組裝臺!$i$3 = b4)*(零件裝配臺!$p$3:$p$60<0)))

完成後,如下圖 7 所示

圖7計算了上述步驟中表1中排程部件對應的底料資訊,該需求的核心知識點為:

知識點一:過濾IF的相對引文方法,將不規則資料轉換為標準一維資料

知識點二:使用過濾功能清空包含空白行和特殊符號的資料。

知識點三:使用排序功能將同型別資料排序在一起。

知識點4:用累計庫存減去累計需求,判斷物料是否少付。

知識點5:利用統計功能統計負數來判斷材料是否齊全,從而判斷出可以生產的裝配資料;

知識點6:使用過濾功能加合併功能,將底料部件的名稱和數量參考表1

我是顧哥:

從事製造業20年,在企業運營、連鎖管理、智慧型製造系統等方面具有豐富的實踐經驗。 擅長企業智慧型化和靈活的計畫運營管理,善於通過企業流程優化和標準化、企業管理、計畫運營的引入來提公升企業效率在提高企業準時交貨率、降低企業庫存、輸出智慧型製造人才等方面擁有豐富的經驗。 學習PMC生產計畫,關注Guge計畫!

相關問題答案

    248 WPS新功能案例 快速統計持紙人員工資

    工廠的車間統計員需要對當月的生產工單進行工資單的工資單,下圖 顯示了其工廠員工每個生產任務的完成數量總量和相應工單產品的單價。因為有些工單是集體計件工作,即多人完成的,所以需要將多人完成的這些工單數量平均分配給每個成員,因為工單數量太大,有的工單是乙個員工完成的,有的工單是兩個完成的,所以需要統計師...

    254 WPS新功能案例 靈活的萬年曆

    馬上就要到 年了,新年一到,就該為新的一年做計畫了,這是用日曆制定計畫的好方法。而這個曆法應該最好地支援任何一年 任何乙個月,也就是我們常說的一萬年曆。製作萬年曆的方法有很多種,今天顧老師分享的方法就是用核心功能序列函式搭配日期函式和彙總函式來製作,在了解了思路和邏輯之後,就可以輕鬆製作出效果如圖所...

    251 WPS新功能案例 快速對客戶進行排序和統計

    乙個工廠業務部門每個員工負責的客戶都是手動登記在一張表上,格式如下圖中的表,如果乙個員工對應多個客戶,那麼使用噸號開啟,這種登記方式的優點是看起來比較直觀,缺點也非常明顯,資料集中在乙個單元格中,如果以後需要,分析和參考客戶非常不方便。本廠統計師的需求是設計乙個函式公式,將每個員工對應的客戶分開,並...

    253 WPS新功能案例 指定工作編號以進行快速篩選

    來自粉絲的貢獻 工廠員工的用餐明細在表中,現在需要在表中輸入員工的工作編號,這樣表中輸入指定員工編號的員工就餐表就可以自動在表中帶出。為了方便截圖,將三個表截圖到乙個工作頁面中,效果如下圖所示 需求分析 當我第一次看到這個需求時,我以為這是乙個搜尋和引用需求,我可以直接用 xlookup 查詢它。但...

    238 WPS新功能EXPAND可實現快速票務拆分

    今天分享的新WPS函式是expanded,這個函式和前兩天分享的drop and take函式不同,drop and take只會刪除和保留陣列,不能擴充套件,也就是說原來的陣列是行的陣列,使用drop take後,返回的結果不會超過行,並且只能小於或等於 行。在需要擴充套件的場景下,可以使用擴充套...