返回列表 上一主題 發帖

[發問] 公式簡化或者使用巨集

[發問] 公式簡化或者使用巨集

請教各位先進是否有更簡化的公式可以取得資料
公式簡化 20230929.rar (107.82 KB)
WIP的D欄位公式源自於說明工作表的良率

根據 C-E (剩餘工作站點)給予不同的良率,數量=原始數量*良率(四捨五入取整數)
判斷良率的順序
1.若A欄位=特殊料號料號(AAA001~7)→Vlookup說明工作表的 T~Z (取第5~11欄)
2.如果產品編號第7碼=W→Vlookup說明工作表的 AA欄 (取第12欄)
3.如果批號第1碼=8→Vlookup說明工作表的 R欄 (取第3欄)
4.剩餘→Vlookup說明工作表的 Q欄 (取第2欄)
由於特殊料號可能還會再增加,所以想詢問是否有更精簡且有彈性的公式可以取代,或者是需要使用巨集
Adam

回復 3# Andy2483
感謝Andy大出手相助,真是太神速了且可動態更新,不過測試後在判斷順序上有點小問題,
公式簡化 20231002-3.rar (115.09 KB)
嘗試將剩餘21站的良率作一個區別來驗證(順便增加料號)

發現判斷順序有點問題,正確是1.特殊料號 → 2.料號第7碼=W → 3.批次第1碼=8 其餘才是取Q欄
Adam

TOP

回復 5# Andy2483

感謝Andy大迅速回覆,經測試完全符合需求,太感謝了
因為也有在程式區詢問此問題,是否可將Andy大的解法分享過去給其他人參考
Adam

TOP

本帖最後由 adam2010 於 2023-10-4 19:56 編輯

回復 5# Andy2483
Sorry~Andy大,應該是我製作的Sample資料檔案不夠完整,在套用時計資料時出現問題


問題在於  3.批次碼(6 找 6"欄 ,8 找 8"欄 ,12 找 12"欄 ),Andy大是取第2碼 X 前的數字當吋別去找對應的良率,
但實際資料12寸是用C代表且批次第2碼不一定是 X


不知到最後一個判斷式該如何修改
            Crr(i - 1, 1) = Round(Brr(V7 + 2, Z(Trim(Split(Crr(i, 2), "X")(0) & """"))) * V, 0)
    公式簡化 20231002-4.rar (113.36 KB)

公式簡化 20231002-3.rar (114.76 KB)

Adam

TOP

回復 7# adam2010

將說明標題改為
改說明標題.jpg
然後將最後一個判斷式改為取第1碼後測試成功了,不過還是很感謝Andy大之前的協助,終於完成
  Else
            Crr(i - 1, 1) = Round(Brr(V7 + 2, Z(Left(Crr(i, 2), 1))) * V, 0)
         
   End If
Adam

TOP

        靜思自在 : 靜坐常恩己過、閒談莫論人非。
返回列表 上一主題