UDF untuk Operasi Penjumlahan dan Pengurangan Waktu pada Excel
Ketika saya memasukkan angka 0830 (yang menginterpretasikan waktu jam 08:30) cell A1 pada excel, lalu di cell B2 saya ingin tahu berapa waktu akhir jika waktu 0830 saya tambahkan dengan 45 menit. Hasil yang saya (dan mungkin semua orang) harapkan waktu akhirnya akan menjadi 0915. Tetapi jika kita memasukkan formula "=A1+45" maka hasilnya akan menjadi 0875 (atau 875 tergantung format cell-nya). Nah, bagaimana caranya supaya hasilnya bisa seperti yang diharapkan. Saya tidak tahu apakah excel punya formula yang mengakomodasi operasi penjumlahan/pengurangan jam dan menit. Tapi saya coba buatkan UDF (User Defined Function) untuk mengakomodasi keperluan tersebut. Salin dan tempel kode berikut ke dalam module VBA.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | Function TAMBAHMENIT(WaktuAwal As Variant, MntSelisih As Variant) Dim MntJumlah As Variant, WaktuAkhir As Variant, JamJumlah As Variant Dim a As Long, b As Long, c As Long If Len(WaktuAwal) = 3 Then WaktuAwal = "0" & WaktuAwal End If MntJumlah = Right(WaktuAwal, 2) + MntSelisih If MntSelisih < 0 Then If Right(WaktuAwal, 2) + MntSelisih < 0 Then c = Int(MntJumlah / 60) a = MntJumlah Mod 60 JamJumlah = Left(WaktuAwal, 2) + c MntJumlah = 60 + a Else JamJumlah = Left(WaktuAwal, 2) End If ElseIf MntSelisih >= 0 Then If MntJumlah >= 60 Then c = Int(MntJumlah / 60) a = MntJumlah Mod 60 b = Replace(CStr(Right(MntJumlah, 2)), CStr(Right(MntJumlah, 2)), CStr(a)) JamJumlah = Left(WaktuAwal, 2) + c MntJumlah = b Else JamJumlah = Left(WaktuAwal, 2) End If End If If Len(JamJumlah) = 1 Then JamJumlah = "0" & JamJumlah If Len(MntJumlah) = 1 Then MntJumlah = "0" & Abs(MntJumlah) TAMBAHMENIT = JamJumlah & MntJumlah End Function |
Untuk menggunakan function tersebut di worksheet, di cell B2 saya masukkan formula "=TAMBAHMENIT(A1+45)". Dan hasilnya adalah 0915 (insya allah).
0 comments:
Post a Comment