2011年7月7日 星期四

在Excel中 將秒數轉換成時分秒

使用Excel記錄測試數據時,當這些數據皆是以秒數為單位時,
換算成時分秒後會比較清楚感受到時間的經過,
因此寫個巨集來轉換這些數據。

1. 開啟Excel
2. 按下Alt + F11 (或 工具 -> 巨集 -> Visual Basic 編輯器)
3. 開啟Visual Basic編輯器後,在工具列選擇 插入 -> 模組 ,來新增一個模組。
4. 輸入以下的程式碼:
   Function ConvertToTimespan(Seconds) As Variant
        '取得時分秒的數值
        HourDigit = Int(Seconds / 3600)
        MinuteDigit = Int((Seconds - HourDigit * 3600) / 60)
        SecondDigit = Seconds - HourDigit * 3600 - MinuteDigit * 60
       
        '顯示格式為: "10h 0m 32s"
        '當數值存在才顯示,例輸入秒數換算後為0時14分,則結果會是"14m 0s"。
        result = ""
        If (HourDigit > 0) Then
            result = result & HourDigit & "h "
        End If
           
        If (MinuteDigit <= 0) Then
            If (HourDigit > 0) Then result = result & MinuteDigit & "m "
        Else
            result = result & MinuteDigit & "m "
        End If
       
        result = result & SecondDigit & "s "       
        ConvertToTimespan = result
   End Function

5. 關閉Visual Basic 編輯器回到Excel。
    使用方式與一般函數相同(eg: SUM),
    在Excel的儲存格內輸入"=ConvertToTimespan(A1)"。

結果:

46
850
4000
46s
14m 10s
1h 6m 40s


   

沒有留言:

張貼留言