Fungsi Terbilang Di MS Excel
Fungsi terbilang adalah salah satu add-ins untuk menterjemahkan angka menjadi kata-kata pada aplikasi MS Excel.
Fungsi terbilang ini mampu menterjemahkan angka sampai 15 digit dan 2 angka dibelakang koma. 15 digit angka merupakan nilai yang dapat ditampung MS Excel sebelum dirubah ke nilai Exponen.
Lankah-langkahnya adalah sebagai berikut :
Buka file Excel, masuk ke menu Tools » Macro » Visual Basic Editor atau dengan shortcut ", setelah Visual Basic Editor terbuka, Anda masuk ke menu Insert » Module, kemudian Paste-kan salah satu kode dibawah ini.
Public Function Terbilang(xbil As Double)
Dim nilai, i, j, k, hasil$, HasilAkhir$, Bilangan#, Digit, Rp$, Bil$
If IsNull(xbil) Then
Terbilang = Null
Exit Function
End If
'Pengelompokan
Dim Kel$(1 To 6), Angka$(1 To 9), Sat$(1 To 3)
Kel$(1) = "Biliun "
Kel$(2) = "Triliun "
Kel$(3) = "Miliar "
Kel$(4) = "Juta "
Kel$(5) = "Ribu "
Kel$(6) = ""
'Data angka
Angka$(1) = "Satu "
Angka$(2) = "Dua "
Angka$(3) = "Tiga "
Angka$(4) = "Empat "
Angka$(5) = "Lima "
Angka$(6) = "Enam "
Angka$(7) = "Tujuh "
Angka$(8) = "Delapan "
Angka$(9) = "Sembilan "
'Satuan
Sat$(1) = "Ratus "
Sat$(2) = "Puluh "
Sat$(3) = ""
'Mulai
Bilangan# = Val(xbil)
HasilAkhir$ = ""
GoSub HitungHuruf
If hasil$ <> "" Then
HasilAkhir$ = hasil$ + "Rupiah"
End If
'Hitung Pecahan
Bilangan# = Fix((Bilangan# - Fix(Bilangan#) + 0.005) * 100#)
If Bilangan# > 0 Then
GoSub HitungHuruf
If hasil$ <> "" Then
HasilAkhir$ = HasilAkhir$ + " " + hasil$ + "Sen"
End If
End If
Terbilang = HasilAkhir$
Exit Function
HitungHuruf:
Rp$ = Right$(String$(18, "0") + LTrim$(Str$(Fix(Bilangan#))), 18)
hasil$ = ""
If Val(Rp$) = 0 Then Return
'Bilangan Bulat
For i = 1 To 6
Bil$ = Mid$(Rp$, i * 3 - 2, 3)
If Val(Bil$) = 1 And i = 5 Then
hasil$ = hasil$ + "Seribu "
ElseIf Val(Bil$) <> 0 Then
For j = 1 To 3
Digit = Val(Mid$(Bil$, j, 1))
If j = 2 And Right$(Bil$, 2) = "10" Then
hasil$ = hasil$ + "Sepuluh "
Exit For
ElseIf j = 2 And Right$(Bil$, 2) = "11" Then
hasil$ = hasil$ + "Sebelas "
Exit For
ElseIf j = 2 And Mid$(Bil$, 2, 1) = "1" Then
hasil$ = hasil$ + Angka$(Val(Right$(Bil$, 1))) + "Belas "
Exit For
ElseIf Digit = 1 And j = 1 Then
hasil$ = hasil$ + "Seratus "
ElseIf Digit <> 0 Then
hasil$ = hasil$ + Angka$(Digit) + Sat$(j)
End If
Next
hasil$ = hasil$ + Kel$(i)
End If
Next
Return
End Function
'Fungsi Terbilang Dengan VBA Untuk MS Office Excel
'Created By : Dievend
'Adapted At : www.dievend.blogspot.com
'Fungsi Penterjemahan Masing-Masing Angka
Private Function Dievend(Number)
Cyber = Array("", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan")
Dievend = Cyber(Number)
End Function
'Mulai Penulisan Fungsi Terbilang
Public Function Terbilang(Nilai, Optional Style = 4, Optional Satuan = "")
Angka = Fix(Abs(Nilai))
'Desimal Dibelakang Koma
Cyber1 = Mid(Abs(Nilai), Len(Angka) + 2, 1)
Cyber2 = Mid(Abs(Nilai), Len(Angka) + 3, 1)
If Cyber2 = "" Then
If Cyber1 = "" Or Cyber1 = "0" Then
Koma = ""
Else
Koma = " Koma " & Dievend(Cyber1)
End If
ElseIf Cyber2 = "0" Then
If Cyber1 = "0" Then
Koma = ""
ElseIf Cyber1 = "1" Then
Koma = " Koma Sepuluh"
Else
Koma = " Koma " & Dievend(Cyber1) & " Puluh"
End If
Else
If Cyber1 = "0" Then
Koma = " Koma Dievl " & Dievend(Cyber2)
ElseIf Cyber1 = "1" Then
If Cyber2 = "1" Then
Koma = " Koma Sebelas"
Else
Koma = " Koma " & Dievend(Cyber2) & " Belas"
End If
Else
Koma = " Koma " & Dievend(Cyber1) & " Puluh " & Dievend(Cyber2)
End If
End If
'Misahin Angka
Diev1 = Left(Right(Angka, 1), 1)
Diev2 = Left(Right(Angka, 2), 1)
Diev3 = Left(Right(Angka, 3), 1)
Diev4 = Left(Right(Angka, 4), 1)
Diev5 = Left(Right(Angka, 5), 1)
Diev6 = Left(Right(Angka, 6), 1)
Diev7 = Left(Right(Angka, 7), 1)
Diev8 = Left(Right(Angka, 8), 1)
Diev9 = Left(Right(Angka, 9), 1)
Diev10 = Left(Right(Angka, 10), 1)
Diev11 = Left(Right(Angka, 11), 1)
Diev12 = Left(Right(Angka, 12), 1)
Diev13 = Left(Right(Angka, 13), 1)
Diev14 = Left(Right(Angka, 14), 1)
Diev15 = Left(Right(Angka, 15), 1)
'Satuan
If Len(Angka) >= 1 Then
If Len(Angka) = 1 And Diev1 = 1 Then
Number1 = "Satu"
ElseIf Len(Angka) = 1 And Diev1 = 0 Then
Number1 = "Dievl"
ElseIf Diev2 = "1" Then
If Diev1 = "1" Then
Number1 = "Sebelas"
ElseIf Diev1 = "0" Then
Number1 = "Sepuluh"
Else
Number1 = Dievend(Diev1) & " Belas"
End If
Else
Number1 = Dievend(Diev1)
End If
Else
Number1 = ""
End If
'Puluhan
If Len(Angka) >= 2 Then
If Diev2 = 1 Or Diev2 = "0" Then
Number2 = ""
Else
Number2 = Dievend(Diev2) & " Puluh "
End If
Else
Number2 = ""
End If
'Ratusan
If Len(Angka) >= 3 Then
If Diev3 = "1" Then
Number3 = "Seratus "
ElseIf Diev3 = "0" Then
Number3 = ""
Else
Number3 = Dievend(Diev3) & " Ratus "
End If
Else
Number3 = ""
End If
'Ribuan
If Len(Angka) >= 4 Then
If Diev6 = "0" And Diev5 = "0" And Diev4 = "0" Then
Number4 = ""
ElseIf (Diev4 = "1" And Len(Angka) = 4) Or (Diev6 = "0" And Diev5 = "0" And Diev4 = "1") Then
Number4 = "Seribu "
ElseIf Diev5 = "1" Then
If Diev4 = "1" Then
Number4 = "Sebelas Ribu "
ElseIf Diev4 = "0" Then
Number4 = "Sepuluh Ribu "
Else
Number4 = Dievend(Diev4) & " Belas Ribu "
End If
Else
Number4 = Dievend(Diev4) & " Ribu "
End If
Else
Number4 = ""
End If
'Puluhan Ribu
If Len(Angka) >= 5 Then
If Diev5 = "1" Or Diev5 = "0" Then
Number5 = ""
Else
Number5 = Dievend(Diev5) & " Puluh "
End If
Else
Number5 = ""
End If
'Ratusan Ribu
If Len(Angka) >= 6 Then
If Diev6 = "1" Then
Number6 = "Seratus "
ElseIf Diev6 = "0" Then
Number6 = ""
Else
Number6 = Dievend(Diev6) & " Ratus "
End If
Else
Number6 = ""
End If
'Jutaan
If Len(Angka) >= 7 Then
If Diev9 = "0" And Diev8 = "0" And Diev7 = "0" Then
Number7 = ""
ElseIf Diev7 = "1" And Len(Angka) = 7 Then
Number7 = "Satu Juta "
ElseIf Diev8 = "1" Then
If Diev7 = "1" Then
Number7 = "Sebelas Juta "
ElseIf Diev7 = "0" Then
Number7 = "Sepuluh Juta "
Else
Number7 = Dievend(Diev7) & " Belas Juta "
End If
Else
Number7 = Dievend(Diev7) & " Juta "
End If
Else
Number7 = ""
End If
'Puluhan Juta
If Len(Angka) >= 8 Then
If Diev8 = "1" Or Diev8 = "0" Then
Number8 = ""
Else
Number8 = Dievend(Diev8) & " puluh "
End If
Else
Number8 = ""
End If
'Ratusan Juta
If Len(Angka) >= 9 Then
If Diev9 = "1" Then
Number9 = "Seratus "
ElseIf Diev9 = "0" Then
Number9 = ""
Else
Number9 = Dievend(Diev9) & " Ratus "
End If
Else
Number9 = ""
End If
'Milyar
If Len(Angka) >= 10 Then
If Diev12 = "0" And Diev11 = "0" And Diev10 = "0" Then
Number10 = ""
ElseIf Diev10 = "1" And Len(Angka) = 10 Then
Number10 = "Satu Milyar "
ElseIf Diev11 = "1" Then
If Diev10 = "1" Then
Number10 = "Sebelas Milyar "
ElseIf Diev10 = "0" Then
Number10 = "Sepuluh Milyar "
Else
Number10 = Dievend(Diev10) & " Belas Milyar "
End If
Else
Number10 = Dievend(Diev10) & " Milyar "
End If
Else
Number10 = ""
End If
'Puluhan Milyar
If Len(Angka) >= 11 Then
If Diev11 = "1" Or Diev11 = "0" Then
Number11 = ""
Else
Number11 = Dievend(Diev11) & " Puluh "
End If
Else
Number11 = ""
End If
'Ratusan Milyar
If Len(Angka) >= 12 Then
If Diev12 = "1" Then
Number12 = "Seratus "
ElseIf Diev12 = "0" Then
Number12 = ""
Else
Number12 = Dievend(Diev12) & " Ratus "
End If
Else
Number12 = ""
End If
'Triliun
If Len(Angka) >= 13 Then
If Diev15 = "0" And Diev14 = "0" And Diev13 = "0" Then
Number13 = ""
ElseIf Diev13 = "1" And Len(Angka) = 13 Then
Number13 = "Satu Triliun "
ElseIf Diev14 = "1" Then
If Diev13 = "1" Then
Number13 = "Sebelas Triliun "
ElseIf Diev13 = "0" Then
Number13 = "Sepuluh Triliun "
Else
Number13 = Dievend(Diev13) & " Belas Triliun "
End If
Else
Number13 = Dievend(Diev13) & " Triliun "
End If
Else
Number13 = ""
End If
'Puluhan Triliun
If Len(Angka) >= 14 Then
If Diev14 = "1" Or Diev14 = "0" Then
Number14 = ""
Else
Number14 = Dievend(Diev14) & " Puluh "
End If
Else
Number14 = ""
End If
'Ratusan Triliun
If Len(Angka) >= 15 Then
If Diev15 = "1" Then
Number15 = "Seratus "
ElseIf Diev15 = "0" Then
Number15 = ""
Else
Number15 = Dievend(Diev15) & " Ratus "
End If
Else
Number15 = ""
End If
If Len(Angka) > 15 Then
Bilang = "Digit Angka Terlalu Banyak"
Else
If IsNull(Nilai) Then
Bilang = ""
ElseIf Nilai < 0 Then
Bilang = "minus " & Trim(Number15 & Number14 & Number13 & Number12 & Number11 & Number10 & Number9 & Number8 & Number7 _
& Number6 & Number5 & Number4 & Number3 & Number2 & Number1 & Koma & " " & Satuan)
Else
Bilang = Trim(Number15 & Number14 & Number13 & Number12 & Number11 & Number10 & Number9 & Number8 & Number7 _
& Number6 & Number5 & Number4 & Number3 & Number2 & Number1 & Koma & " " & Satuan)
End If
End If
If Style = 4 Then
Terbilang = StrConv(Left(Bilang, 1), 1) & StrConv(Mid(Bilang, 2, 1000), 2)
Else
Terbilang = StrConv(Bilang, Style)
End If
Terbilang = Replace(Terbilang, " ", " ", 1, 1000, vbTextCompare)
End Function
Kemudian click Save dan Close (Visual Basic editor). Sekarang fungsi buatan terbilang sudah siap digunakan.
Fungsi diatas hanya berlaku untuk satu Workbook / satu file saja, kalau anda menginginkan fungsi buatan tersebut bisa diaplikasikan ke semua file Excel, anda harus menyimpan file tersebut menjadi File Add-in, caranya klik Save/Save as, setelah muncul kotak dialog, pada bagian Save as Type pilih Microsoft Office excel Add-ins, simpan dengan nama file "Terbilang",setelah disimpan sekarang anda klik menu Tools » add-Ins » klik Browse dan buka file "Terbilang" yang baru anda simpan.
Untuk penulisan rumus secara lansung dengan Formula =Terbilang(Cels) » Enter, atau pilih Insert » Function, dari daftar dalam Function Category, pilihlah User Defined, sehingga dalam daftar di Function name muncul nama fungsi Terbilang.