2012年12月23日 星期日

Excel VBA 標準體重計算

d006d1 標準體重計算
在介紹程式內容前,我們要先理解一下這些和體重有關的公式(註:以下的體重單位為 kg、身高單位為 m)

  • 身體質量指數(Body Mass Index,縮寫為BMI):
    BMI = 體重  ÷ (身高 × 身高) 
  • 標準體重算法1:
    男性標準體重 = (身高 - 0.8) × 70
    女性標準體重 = (身高 - 0.7) × 60
  • 標準體重算法2:
    男生標準體重 = (身高 × 身高) × 22 × ( 1 + 0.1 )
    女生標準體重 = (身高 × 身高) × 22 × ( 1 + 0.05 )

像範例這類的簡易的公式套用,使用excel內建的函數是可以解決的。
早期我也是直接在儲存格上打一函數來計算。
像範例中有提到的BMI身體質量指數,直接在儲存格上使用函數就可以計算的出來。
不過如果講到便利性的話,還是用巨集的方式處理會比較好。
程式說明

  • 列4:Public Function 身體質量指數(身高, 體重)
    自訂一個名稱為「身體質量指數」的新函數,引數內容的名稱也是自訂
  • 列5:身體質量指數 = 體重 / ((身高) ^ 2 / (100) ^ 2)
    係依照BMI的計算公式而寫的,只要把引數套入公式就可以算出答案
  • 列6:身體質量指數 = Round(身體質量指數, 2)
    把已經算好的BMI再四捨五入,Round(身體質量指數, 2)即表示把答案四捨五入取概數到小數第2位。
  • 列8~列15:
    設計的內容是「標準體重」的計算,係依照上述的標準體重算法1來列出公式,最後取概數到小數第2位。
  • 列16~列23:
    設計的內容是「標準體重」的計算,係依照上述的標準體重算法2來列出公式,最後取概數到小數第2位。
  • 列24~列26的函式:
    設計的內容是「體重建議值」的計算,標準體重算法有二種,第1個算法來自於世界衛生組織,第2個算法來自本國,有鑑國人的飲食較好普遍較重,所以計算方式沒有WHO的這麼嚴苛,所以這裡就把這二個公式算出的標準體重做為參考建議值。
  • 列25:標準體重建議值 = 標準體重1(身高, 性別) & "kg~" & 標準體重2(身高, 性別) & "kg"
    這裡就用字串連接的方式把二個公式算出的標準體重合在一起。
    因為函數是Public,所以可以互相調用。只要裡面的引數再拿出來用就可以了。
其他應用範例:評語及資料檢查
d006d2評語及資料檢查
上面的程式範例還只是個雛型,可以依照公式來做的程式其實就是依樣畫葫蘆,難度較小。但像本例,要自製評語及資料檢查就比較難了,尤其是資料驗證檢查的部分,檢查使用者的資料有沒有輸入齊全,這個是最煩人的步驟了。
程式說明
  • 列31~列52:整個 if 判別式流程是:
    先判斷有沒有輸入資料→如果有再判斷是不是大於0→如果有再去做級別的判斷並下評語。這個邏輯沒有錯,不過中間其實少一個驗證,就是判斷是不是數字。所以使用者輸入中文或英語的話,並不會看到錯誤評語。
    整個流程非常的多,其實可以進一步的寫一個可以驗證的程序做為以後使用,當需要驗證的使用就調用這個驗證函式。
  • 列37~列50:
    整個select判斷句是很典型的分數級別的寫法。我記得好像數字是要由小寫到大,由大寫到小是判斷不出來的,不信你可以試試看。 

1 則留言:

Related Posts Plugin for WordPress, Blogger...
// Dnow Function