顯示具有 稽核 標籤的文章。 顯示所有文章
顯示具有 稽核 標籤的文章。 顯示所有文章

2023年2月21日 星期二

研發循環_試作及設變

 


研發過程中的試作階段,需要關注以下一些問題:

試作材料的使用:檢查試作過程中所使用的材料是否符合產品規格和標準,是否符合企業的安全和環保要求,並且材料的選擇是否與研發計劃和預算相符。

試作設備的選用和使用:檢查試作過程中所使用的設備是否符合產品要求和標準,並且是否符合企業的安全和環保要求,同時需要關注設備的使用方式是否合理,是否符合安全規定,是否有人員專門負責設備的維護和保養。

試作過程的控制:需要對試作過程進行控制,確保試作過程中的每個步驟都符合研發計劃和標準,需要建立試作過程的文件和記錄,以便後續的審計和追溯。

試作過程的安全:試作過程中需要注意安全問題,特別是涉及到危險物品和高溫高壓等操作,需要對操作人員進行安全教育和培訓,確保操作人員有足夠的技能和知識。

試作過程的品質控制:在試作過程中需要對產品的品質進行控制,需要建立品質檢測和測試標準,確保試作產品符合企業的品質要求,需要對試作產品進行檢驗和檢測。

在試作階段需要從材料、設備、過程、安全、品質等多個方面進行內部稽核,確保產品開發符合規定和要求,以減少後續問題和風險。


內部稽核查核產品設計變更時需要注意的事項:

  1. 變更評估:應對每一個產品設計變更進行評估,確定變更的內容、影響範圍和可能的風險,並確認是否需要進行相應的測試和驗證。

  2. 設計變更程序:應該建立明確的設計變更程序,包括變更的審核、批准、實施和驗證等步驟,以確保變更過程的透明度和可追溯性。

  3. 文件控制:對於所有設計變更相關的文件,包括設計變更申請、設計變更審核和設計變更報告等,應該進行嚴格的文件控制,確保文件的準確性、完整性和可靠性。

  4. 測試和驗證:對於所有需要測試和驗證的設計變更,應該建立相應的測試計劃和驗證程序,並確保相應的測試和驗證結果符合相關標準和法規的要求。

  5. 風險評估:對於可能存在風險的設計變更,應該進行風險評估,確認風險等級並制定相應的風險控制措施。

  6. 審核記錄:應該建立明確的審核記錄,對所有的設計變更審核結果進行記錄和存檔,以供內部稽核和外部稽核人員查閱。

  7. 試做報告:參數紀錄、耗用紀錄、良率。

內部稽核查核產品設計變更需要對設計變更的評估、文件控制、測試和驗證、風險評估、審核記錄等進行全面的控制和管理,確保產品設計變更過程的透明度、可追溯性和安全性。

2022年11月11日 星期五

固定資產_驗收資料核對_主要使用VBA

        這幾天比對驗收報告及財產清冊原本使用Power BI的 Power Query處理,發現無法全部直接對上,後來單純比對品號及品名時發現可能的問題,現在想想這種無法完全1對1的還是要用VBA處理比較快速。

        在電腦效能不夠強的情況下,VBA還是有優勢,不過Power BI+SQL在不夠了解狀況下還是有一定的掃盲,只是SQL跟Power Query 在今天(2022/11/9)讓我的新筆電卡住了。

         VBA將兩份數據做1對1的比對還是耗比較少資源,把兩份數據分別丟進陣列中,對記憶體的使用比SQL跟PQ要少些,PQ很容易一直載入,存檔時跟完成新步驟時都會。SQL則是在子程序卡住了。不過用法上PQ跟SQL還是簡單些。

PS.VBA還沒寫,先記錄,下次比較容易完成。



狀況:

  • 有條件驗收日
  • 正常驗收日
  • 其他驗收日(未知)
  • 品號無法對應(某一方未輸入)
  • 品名無法對應(財產清冊品名與驗收報告不同)
  • 有驗收但不在財產清冊上 VS 財產清冊上有但驗收報告上無(有可能自製入庫)
  • 為了支付供應商款項提前領用備品...(每間公司狀況不同)

篩選條件:
  • 自製入庫的品號_SQL
  • 驗收報告整理_SQL
  • 財產目錄(全部)
主要處理方式:1對1

使用VBA,完全比對之後再模糊比對

以前使用過的地方:
  • 比對運費
  • 二十大營運分析 (費用對應)
  • 附註費用

2020年11月26日 星期四

VBA_善用陣列能縮短程序執行時間

         下面VBA代碼是用來做單價查詢,利用TRIMMEAN函數將20%的極端值排除求出平均數,在以STDEV.S求得標準差,然後計算標準差佔坪均數的比例,比例越高代表這個品號價格波動越大,用在採購單價及銷售單價上有不錯的篩選效果。

        在這裡是使用一般平均數計算也可以達到效果,因為每個單價如果差異大標準差就會大,也就會顯示高差異比例。

        陣列在VBA使用上能節省很多時間,在這例子上不使用陣列需要花33秒,這讓我有點難接受,後來改陣列計算,縮短為7秒左右,勉強能接受,下面提供部分代碼,有興趣的人可以參考一下。

Sub 單價偏鋒_標準差()

    '2020/11/25 此方式須33秒(跟資料範圍有關)

    Application.ScreenUpdating = False

    t = Timer

    Dim sh_樞紐 As Worksheet

    Set sh_樞紐 = Sheets("樞紐")

    With sh_樞紐

        lr = .Range("A1048576").End(xlUp).Row

        lc = .Range("A2").End(xlToRight).Column

        For i = 3 To lr

            .Cells(i, lc + 1) = "=IFERROR(TRIMMEAN(RC[-60]:RC[-1],0.2),"""")"

            .Cells(i, lc + 2) = "=IFERROR(int(STDEV.S(RC[-61]:RC[-2])),"""")"

            .Cells(i, lc + 1) = .Cells(i, lc + 1).Value

            .Cells(i, lc + 2) = .Cells(i, lc + 2).Value

            If .Cells(i, lc + 2) > 0 Then

                .Cells(i, lc + 3) = Round(.Cells(i, lc + 2) / .Cells(i, lc + 1), 2)

            End If

        Next

    End With

    MsgBox Timer - t


End Sub

Sub 單價偏鋒_標準差A()

    '2020/11/25 此方式約6秒 ,如果輸出""會變7秒,增加截取最近一年最高價時間約7.2秒

    Application.ScreenUpdating = False

    t = Timer

    Dim sh_樞紐 As Worksheet

    Set sh_樞紐 = Sheets("樞紐")

    With sh_樞紐

        lr = .Range("A1048576").End(xlUp).Row

        lc = .Range("A2").End(xlToRight).Column

        .Columns(lc + 1).Resize(, 2).NumberFormatLocal = "#,###"

        .Columns(lc + 3).NumberFormatLocal = "#.00%"

        .Columns(lc + 4).NumberFormatLocal = "#,###"

       ' arr_樞紐 = .Range("A1").Resize(lr, lc + 3) 可能是記憶體關係,計算完無法撈出來,不然整體會落在1秒內

        For i = 3 To lr

            arr_暫時 = .Cells(i, lc - 59).Resize(, 60) '----------差異點

            arr_最近 = .Cells(i, lc - 11).Resize(, 12) '----------新增步驟

            If Application.Sum(arr_暫時) > 0 Then

                .Cells(i, lc + 1) = Application.TrimMean(arr_暫時, 0.2)

                in_標準差 = Application.StDev_S(arr_暫時)

                If IsError(in_標準差) Then

                    .Cells(i, lc + 2) = 0 '輸出"" 會比輸出0 多1秒

                Else

                    .Cells(i, lc + 2) = Application.StDev_S(arr_暫時)

                End If

            Else

               .Cells(i, lc + 2) = 0

               .Cells(i, lc + 1) = 0

            End If

            in_T平均 = .Cells(i, lc + 1)

            in_標準差 = .Cells(i, lc + 2)

            If in_標準差 > 0 Then

                .Cells(i, lc + 3) = Application.Round(in_標準差 / in_T平均, 2)

            End If

            in_最高價 = Application.Max(arr_最近) '-----增加此步驟

            If in_最高價 > 0 Then '避免不必要輸出,減少時間

                .Cells(i, lc + 4) = in_最高價

            End If

            Erase arr_最近

            Erase arr_暫時

        Next

    End With

    MsgBox Timer - t

End Sub

2020年9月20日 星期日

Excel_SUBTOTAL 函數可以用來檢查有沒有計算隱藏資料

        當你會的excel函數越多,你能應付的狀況也越多,Subtotal這函數可能很少被使用,但在否些狀況下是很好用的,尤其是當你是主管或是稽核,要確認你檢視的資料有沒有不小心被藏起來的數字不該計算卻又被計算時。也可以用在篩選時,檢視不同情況下的加總,這樣只會加總篩選時的狀態。

        下表是subtotal各種使用狀況,較常使用是sum這個函數的狀況。,A欄及B欄數值是固定,對應特定的函數。

subtotal各種使用數值對應


        下表就是sum與subtotal計算的數值結果,資料中第8行被隱藏起來了,如果使用sum計算,隱藏資料如果是不該計算的,那就會得到錯誤的結果,這時用subtotal確認排除隱藏資料就會發現數值不一樣,如果資料有幾百、幾千員工薪資時用subtotal檢查就很快速確認。


subtotal計算不含隱藏資料,用來檢查薪資有沒有隱藏很好用

    公式如下:






使用Gemini撰寫投資策略執行碼

 本週我嘗試使用 AI 來測試「蹺蹺板投資策略」。有趣的是,付費版 ChatGPT 在撰寫較複雜的策略程式碼時,表現並不如預期,反而是免費版的 Gemini 表現更為出色。不僅能快速生成可執行的程式,還能在我進行策略修正的過程中,協助將提示詞進一步結構化,讓程式更貼近我原本的投資...