Formula terbilang adalah formula untuk Microsoft Excel yang berfungsi mengkonversi/merubah angka menjadi kata atau kalimat.Dengan menggunakan formula terbilang ini, kita dapat merubah angka 1000 menjadi kata "seribu", angka 123 menjadi "seratus dua puluh tiga", ...dsb secara otomatis.
Untuk dapat menggunaka formula ini, terlebih dahulu kita harus menambahkan Add-ins melalui menu File -> Options. Lalu klik menu Add-Ins yang ada di bagian kiri, kemudian klik tombol "Go..." disebelah kanan pilihan Manage Excel Add-ins
Function Ratusan(cData As String) As String Dim DataDepan, nLenData, nCount As Integer Dim SisaData, cHuruf As String Dim Satuan, Imbuhan As Variant Satuan = Array(" nol", " satu", " dua", " tiga", " empat", " lima", " enam", " tujuh", " delapan", " sembilan") Imbuhan = Array("", "", " puluh", " ratus") nLenData = Len(cData) SisaData = "" cHuruf = "" For nCount = nLenData To 1 Step -1 DataDepan = Val(Mid(cData, 1, 1)) SisaData = Mid(cData, 2, Len(cData)) If Not (DataDepan = 0) Then If ((nCount = 2) And (CInt(Val(cData)) > 10) And (CInt(Val(cData)) < 20)) Then cHuruf = cHuruf + IIf(CInt(Val(SisaData)) = 1, " se", Satuan(CInt(Val(SisaData)))) cHuruf = cHuruf + IIf(CInt(Val(SisaData)) = 1, "", " ") + "belas" GoTo Keluar Else cHuruf = cHuruf + IIf((DataDepan = 1) And (Not (nCount = 1)), " se", Satuan(DataDepan)): cHuruf = cHuruf + IIf((DataDepan = 1) And (Not (nCount = 1)), Trim(Imbuhan(nCount)), Imbuhan(nCount)) End If End If cData = SisaData Next Keluar: Ratusan = cHuruf End Function Function Isi(cAngka As String) As String Dim nCount, nLenData As Integer Dim cHuruf, cData As String Dim Akhiran As Variant Akhiran = Array("", "", " ribu", " juta", " milyar", " triliun", " biliun", " ziliun") cHuruf = "" cData = "" nLenData = Fix(Len(cAngka) / 3) + IIf((Len(cAngka) Mod 3) = 0, 0, 1) For nCount = nLenData To 1 Step -1 cData = Mid(cAngka, 1, IIf(Len(cAngka) - (3 * (nCount - 1)) > 0, Len(cAngka) - (3 * (nCount - 1)), 1)) If Not (Fix(Val(cData)) = 0) Then cHuruf = cHuruf + IIf((nCount = 2) And (CInt(Val(cData)) = 1), " se", Ratusan(cData)) cHuruf = cHuruf + IIf((nCount = 2) And (CInt(Val(cData)) = 1), Trim(Akhiran(nCount)), Akhiran(nCount)) cHuruf = Replace(cHuruf, "se ribu", "seribu") End If cAngka = Right(cAngka, 3 * (nCount - 1)) Next Isi = cHuruf End Function Function Terbilang(nNumber As Double) As String Dim cHuruf, cNumber, cFullNumber, cDecsNumber As String Dim nPosDecs As Integer If VarType(nNumber) = 2 Then nNumber = CDbl(CStr(Fix(nNumber)) + Application.DecimalSeparator + "0") Else nNumber = nNumber End If cHuruf = "" If nNumber < 0 Then cHuruf = " minus" cNumber = Trim(CStr((nNumber * -1))) Else cNumber = Trim(CStr(nNumber)) End If nPosDecs = InStr(cNumber, Application.DecimalSeparator) cFullNumber = Mid(cNumber, 1, IIf(nPosDecs = 0, Len(cNumber), nPosDecs - 1)) cDecsNumber = Right(cNumber, Len(cNumber) - IIf(nPosDecs = 0, Len(cNumber), nPosDecs)) If Not (Fix(Val(cFullNumber)) = 0) Then cHuruf = cHuruf + Isi(CStr(cFullNumber)) Else cHuruf = " nol" End If If Not (cDecsNumber = "") Then If Not (Fix(Val(cDecsNumber)) = 0) Then cHuruf = cHuruf + " koma" + Isi(cDecsNumber) End If End If Terbilang = cHuruf End Function