返回列表 上一主題 發帖

[發問] 依照報表投線量與UPH<每小時產能>計算開機數 -- 發問

[發問] 依照報表投線量與UPH<每小時產能>計算開機數 -- 發問

這個邏輯好複雜........
想問這邊的高手這種邏輯能不能寫成一個程式
執行結果如圖下圖
假設今日是10/4  (報表是10/4帶回家開始想邏輯.....)
計算報表中當天的投線量加總,去計算這樣的產能,需要開幾台機台
計算公式是   投線量/(UPH*21.5)  UPH是每小時產能    21.5是工作時間


再來是我的邏及串連方式跟我設計的UPH表格
檔案分成報表檔案All Card UPH檔案 UPH檔案又分資料表Layer 層別;執行結果檔案
首先判斷 如果報表上的PKG 跟 All Card UPH資料表的 PKG欄位一樣
報表上的Device取All Card UPH檔案 Layer資料表 關鍵字  如果一樣
如報表 Device P-MS030NV-P8039DA1-CTHE16GGD4-SKSC   Layer資料欄  16GGD4 = 16G*4
STG代表站點,後面M-UPH代表每個站點的UPH產能  STG所帶出來的就是要列入產能計算開機數
報表上的DateTime計算出當天10/4的總投線量加總   報表上CUSTNAME 欄位如果有ENG / CSP /則不列入計算



最後結果就如下圖
例如
PKG   MICRO SD B 8L 11*15  Device判斷出  16G*4   10月4日 投線量 47363   STG帶出CA0  DA0  DA1  DA2  所以這三個站點 就依照UPH計算公式算出開機數
投線量/(UPH*21.5)  UPH是每小時產能    21.5是工作時間



不知道這個邏輯有沒有BUG...能不能串出一個程式....

開機數.rar (967.19 KB)

回復 27# 准提部林


    感謝版大..!!! 這幾天將試著將執行出來的V 部分 , 補齊參數~再過一陣子review 看看了~~~

TOP

回復 26# v03586


找不到完全對策, 趁還有空檔修改一下:
ON開機數計算程式_v4.rar (482.11 KB)

程式是無料,但最終還是需要〔人工〕加料處理~~

TOP

本帖最後由 v03586 於 2015-12-5 23:44 編輯

回復 25# 准提部林


    真不好意思這麼麻煩版大....如果版大沒有空沒關係放著吧!!主要本身的是為主
目前第四版計算出來還是會出現如圖問題..

1.同一名稱不同製程?如何分類.加總,及列表?
        基本上依照Device種類不同做列表.. 同樣Device (=同層別) 做加總
        列表依照不同Device列出來(現在的不就是依照Device不同列出來了嗎!!)


2.有名稱,卻沒有製程參數可相除,數量/?/21.5,怎麼算?
        有名稱確沒有製程參數可相除...因為IE( Industrial Engineer) 並無把所有參數量測完整 (太多產品/種類) 需要日後慢慢建立補齊
        邏輯連結部分 可以判斷成....如果[報表]資料表上的G欄 如果對應不到 [UPH]資料表 上的製程參數 則就不計算嗎?

        目前的狀況沒參數也是沒計算  但就是列表出來而已 ,  只要[UPH]資料表...日後IE有補上資料 就能計算出來了
3.EE欄部份有製程,部份則無,甚至不確定取出的製程是否完整?
     EE欄位 製程欄位 部分無的部分看過了!!只要沒有表上得代表是別廠的製程
最一開始不是有先判斷CSP ENG AT7F....等等 那些都是別廠的報表...製程不同所以沒有那些製程
所以取出的完全正確

TOP

回復 24# v03586


1.同一名稱不同製程?如何分類.加總,及列表?
2.有名稱,卻沒有製程參數可相除,數量/?/21.5,怎麼算?
3.EE欄部份有製程,部份則無,甚至不確定取出的製程是否完整?
  不是小問題,比對看看檔案中〔報表〕的G欄及H欄: ON開機數計算程式_v4.rar (215.09 KB)

近年底較忙,可能較沒時間跟帖,看是超板或其他大大可幫忙接手~~~~

TOP

本帖最後由 v03586 於 2015-12-5 01:26 編輯

回復 23# 准提部林


    這幾天試Run下來發現一個小問題, 不知道有沒有辦法解決
發現Device不同 部分製程組合不同
報表上的EE欄位是製程欄位
如圖 判斷出來雖然都是8G*1 但產品組合結構不同 ,製程欄位不同


如同先前的判斷就會出線不是這個Device得製程也會帶出數值


自己想得辦法不知可否解決
不知道可否從製程欄位中去判斷出是否有SA0,SA1,RA0,RA1,DA0,DA1.....CA2  就是執行結果表頭那些
在[報表] 欄位呈現 (如圖)

在依照報表層別後面有出現的站點去Link [UPH] 那資料表 (如圖連結方式)


最後層現就依照製程欄位有的去計算開機數


附上更新過取代法169組資料及最新報表檔案
ON開機數計算程式_v3.rar (901.82 KB)


※ 不知道那些沒有命名規則得可不可以利用製程欄位直接去計算   ( 如無辦法就只能去建立Device 去判斷層別了 )
因為沒層別也不知道要帶哪個層別的參數 (攤手)

TOP

回復 22# v03586


若 KDRCK4MWGD-HAXHHH-HHQ 是一個完整的Device名稱,沒問題,
除非還有以下這些相近名稱,還是要注意其優先順序:
KDRCK4MWGD-HAXHHH-HHQR  = 6G*4
HKDRCK4MWGD-HAXHHH-HHQ  =6G*1
BKDRCK4MWGD-HAXHHH-HHQ2 =6G*2

另外,這些特別指定字串,其A欄的G數,不要輸入6,改為999,才會排在最上方!

TOP

本帖最後由 v03586 於 2015-12-2 23:18 編輯

回復 21# 准提部林


    感謝版大得提醒~今日已在公司將Layer取代法得關鍵字新增75組 目前共154組
且實際跑完後 有去核對報表帶出來的是否正確~截至目前為止還是正常得!!!
感謝版大大力得支援 感激不盡..!!!

另外請問一下 有些命名方式不一樣 可以使用取代法  自己將層別打上去嗎
例如
某個Device KDRCK4MWGD-HAXHHH-HHQ

就變成自己新增 用手動改儲存格  也能使用取代法吧!!
我測試試OK的~~特殊命名只能靠取代法去cover了!!
這種更改方式應該不會影響程式上的判斷吧

TOP

本帖最後由 准提部林 於 2015-12-2 10:23 編輯

回復 19# v03586

加入[右方]及[下方]合計:
ON開機數計算程式_v3.rar (447.46 KB)

再特別提醒:
〔取代法〕:Layer工作表的對照資料必須完整,且依〔數字大〕〔字元數多〕者排在最上方,不然還是問題
例如:8GAA1.8GAA16
若只有8GAA1,而漏了8GAA16,則8GAA16會被視為8GAA1而取代之,
或.8GAA1排在8GAA16前面,則8GAA16也會〔優先〕被8GAA1取代,
同理.8GAA1排在128GAA1前面,則128GAA1也會〔優先〕被8GAA1取代!

多花些時間去了解〔取代〕順序不同,所造成的結果差異~~這只能靠自己去邏輯推演~

TOP

回復 19# v03586
試試看:
  1. Sub 計算當日開機數()
  2.     Dim RepSht As Worksheet, RepArr, xD1, xD2, R&, C&
  3.              .
  4.              .
  5.              .
  6.     '  此處呼叫
  7.     GetSubTot
  8.     Application.GoTo xSht.[A2]
  9. End Sub
複製代碼
增加部分:
  1. Sub GetSubTot()
  2.     Dim Btm As Long, rPos As Long
  3.    
  4.     With Sheets("開機數")
  5.         Btm = .Range("A" & Rows.Count).End(xlUp).Row
  6.         rPos = Sheets("開機數").UsedRange.End(xlToRight).Column
  7.         If (Cells(1, rPos) = "Total") Then rPos = rPos - 1
  8.         .Cells(1, rPos + 1) = "Total"
  9.         .Cells(2, rPos + 1).Resize(Btm - 1).Formula = "=SUM(F" & 2 & ":T" & 2 & ")"
  10.         .Cells(2, rPos + 1).Resize(Btm - 1) = .Cells(2, rPos + 1).Resize(Btm - 1).Value
  11.         .Cells(Btm + 1, "B") = "                        Total"
  12.         .Cells(Btm + 1, "F").Resize(, 16).Formula = "=SUM(F" & 2 & ":F" & Btm & ")"
  13.         .Cells(Btm + 1, "F").Resize(, 16) = .Cells(Btm + 1, "F").Resize(, 16).Value
  14.     End With
  15. End Sub
複製代碼

TOP

        靜思自在 : 人事的艱難與琢磨,就是一種考驗。
返回列表 上一主題