Selamat Datang

Silahkan Download

RUMUS TERBILANG ( EXCEL )



By  Iwan Rudiawan     July 28, 2017  
COPY/PASTE kan RUMUS berikut ini pada Module Excel
======================================================

Function ANGKAKATA(nomor)
'Fungsi ANGKAKATA untuk mengubah angka menjadi kata

Application.Volatile
Terjemah = Array("", "satu", "dua", "tiga", "empat", _
"lima", "enam", "tujuh", "delapan", "sembilan")
ANGKAKATA = Terjemah(nomor)

End Function

Function TERBILANG(n_angka, _
    Optional m_huruf = 4, Optional Satuan = "")
'Fungsi TERBILANG

Application.Volatile

angka = Fix(Abs(n_angka))

'Dua desimal dibelakang koma
desimal1 = Mid(Abs(n_angka), Len(angka) + 2, 1)
desimal2 = Mid(Abs(n_angka), Len(angka) + 3, 1)

If desimal2 = "" Then
    If desimal1 = "" Or desimal1 = "0" Then
        Koma = ""
    Else
        Koma = " koma " & ANGKAKATA(desimal1)
    End If

ElseIf desimal2 = "0" Then
    If desimal1 = "0" Then
        Koma = ""
    ElseIf desimal1 = "1" Then
        Koma = " koma sepuluh"
    Else
        Koma = " koma " & ANGKAKATA(desimal1) & " puluh"
    End If

Else
    If desimal1 = "0" Then
    Koma = " koma nol " & ANGKAKATA(desimal2)
    ElseIf desimal1 = "1" Then
        If desimal2 = "1" Then
        Koma = " koma sebelas"
        Else
        Koma = " koma " & ANGKAKATA(desimal2) & " belas"
        End If
    Else
    Koma = " koma " & ANGKAKATA(desimal1) & _
    " puluh " & ANGKAKATA(desimal2)
    End If
End If

'Memisahkan angka
No1 = Left(Right(angka, 1), 1)
No2 = Left(Right(angka, 2), 1)
No3 = Left(Right(angka, 3), 1)
No4 = Left(Right(angka, 4), 1)
No5 = Left(Right(angka, 5), 1)
No6 = Left(Right(angka, 6), 1)
No7 = Left(Right(angka, 7), 1)
No8 = Left(Right(angka, 8), 1)
No9 = Left(Right(angka, 9), 1)
No10 = Left(Right(angka, 10), 1)
No11 = Left(Right(angka, 11), 1)
No12 = Left(Right(angka, 12), 1)
No13 = Left(Right(angka, 13), 1)
No14 = Left(Right(angka, 14), 1)
No15 = Left(Right(angka, 15), 1)

'Bilangan satuan
If Len(angka) >= 1 Then
    If Len(angka) = 1 And No1 = 1 Then
    nomor1 = "satu"
    ElseIf Len(angka) = 1 And No1 = 0 Then
    nomor1 = "Nol"
    ElseIf No2 = "1" Then
        If No1 = "1" Then
        nomor1 = "sebelas"
        ElseIf No1 = "0" Then
        nomor1 = "sepuluh"
        Else
        nomor1 = ANGKAKATA(No1) & " belas"
        End If
 
    Else
    nomor1 = ANGKAKATA(No1)
    End If
Else
nomor1 = ""
End If

'Bilangan puluhan
If Len(angka) >= 2 Then
    If No2 = 1 Or No2 = "0" Then
    nomor2 = ""
    Else
    nomor2 = ANGKAKATA(No2) & " puluh "
    End If
Else
nomor2 = ""
End If

'Bilangan ratusan
If Len(angka) >= 3 Then
    If No3 = "1" Then
    nomor3 = "seratus "
    ElseIf No3 = "0" Then
    nomor3 = ""
    Else
    nomor3 = ANGKAKATA(No3) & " ratus "
    End If
Else
nomor3 = ""
End If

'Bilangan ribuan
If Len(angka) >= 4 Then
    If No6 = "0" And No5 = "0" And No4 = "0" Then
    nomor4 = ""
    ElseIf (No4 = "1" And Len(angka) = 4) Or _
    (No6 = "0" And No5 = "0" And No4 = "1") Then
    nomor4 = "seribu "
    ElseIf No5 = "1" Then
        If No4 = "1" Then
        nomor4 = "sebelas ribu "
        ElseIf No4 = "0" Then
        nomor4 = "sepuluh ribu "
        Else
        nomor4 = ANGKAKATA(No4) & " belas ribu "
        End If
    Else
    nomor4 = ANGKAKATA(No4) & " ribu "
    End If
Else
nomor4 = ""
End If

'Bilangan puluhan ribu
If Len(angka) >= 5 Then
    If No5 = "1" Or No5 = "0" Then
    nomor5 = ""
    Else
    nomor5 = ANGKAKATA(No5) & " puluh "
    End If
Else
nomor5 = ""
End If

'Bilangan ratusan Ribu
If Len(angka) >= 6 Then
    If No6 = "1" Then
    nomor6 = "seratus "
    ElseIf No6 = "0" Then
    nomor6 = ""
    Else
    nomor6 = ANGKAKATA(No6) & " ratus "
    End If
Else
nomor6 = ""
End If

'Bilangan jutaan
If Len(angka) >= 7 Then
    If No9 = "0" And No8 = "0" And No7 = "0" Then
    nomor7 = ""
    ElseIf No7 = "1" And Len(angka) = 7 Then
    nomor7 = "satu juta "
    ElseIf No8 = "1" Then
        If No7 = "1" Then
        nomor7 = "sebelas juta "
        ElseIf No7 = "0" Then
        nomor7 = "sepuluh juta "
        Else
        nomor7 = ANGKAKATA(No7) & " belas juta "
        End If

    Else
    nomor7 = ANGKAKATA(No7) & " juta "
    End If
Else
nomor7 = ""
End If

'Bilangan puluhan juta
If Len(angka) >= 8 Then
    If No8 = "1" Or No8 = "0" Then
    nomor8 = ""
    Else
    nomor8 = ANGKAKATA(No8) & " puluh "
    End If
Else
nomor8 = ""
End If

'Bilangan ratusan juta
If Len(angka) >= 9 Then
    If No9 = "1" Then
    nomor9 = "seratus "
    ElseIf No9 = "0" Then
    nomor9 = ""
    Else
    nomor9 = ANGKAKATA(No9) & " ratus "
    End If
Else
nomor9 = ""
End If

'Bilangan milyar
If Len(angka) >= 10 Then
    If No12 = "0" And No11 = "0" And No10 = "0" Then
    nomor10 = ""
    ElseIf No10 = "1" And Len(angka) = 10 Then
    nomor10 = "satu milyar "
    ElseIf No11 = "1" Then
        If No10 = "1" Then
        nomor10 = "sebelas milyar "
        ElseIf No10 = "0" Then
        nomor10 = "sepuluh milyar "
        Else
        nomor10 = ANGKAKATA(No10) & " belas milyar "
        End If

    Else
    nomor10 = ANGKAKATA(No10) & " milyar "
    End If
Else
nomor10 = ""
End If

'Bilangan puluhan Milyar
If Len(angka) >= 11 Then
    If No11 = "1" Or No11 = "0" Then
    nomor11 = ""
    Else
    nomor11 = ANGKAKATA(No11) & " puluh "
    End If
Else
nomor11 = ""
End If

'Bilangan ratusan milyar
If Len(angka) >= 12 Then
    If No12 = "1" Then
    nomor12 = "seratus "
    ElseIf No12 = "0" Then
    nomor12 = ""
    Else
    nomor12 = ANGKAKATA(No12) & " ratus "
    End If
Else
nomor12 = ""
End If

'Bilangan triliun
If Len(angka) >= 13 Then
    If No15 = "0" And No14 = "0" And No13 = "0" Then
    nomor13 = ""
    ElseIf No13 = "1" And Len(angka) = 13 Then
    nomor13 = "satu triliun "
    ElseIf No14 = "1" Then
        If No13 = "1" Then
        nomor13 = "sebelas triliun "
        ElseIf No13 = "0" Then
        nomor13 = "sepuluh triliun "
        Else
        nomor13 = ANGKAKATA(No13) & " belas triliun "
        End If

    Else
    nomor13 = ANGKAKATA(No13) & " triliun "
    End If
Else
nomor13 = ""
End If

'Bilangan puluhan triliun
If Len(angka) >= 14 Then
    If No14 = "1" Or No14 = "0" Then
    nomor14 = ""
    Else
    nomor14 = ANGKAKATA(No14) & " puluh "
    End If
Else
nomor14 = ""
End If

'Bilangan ratusan triliun
If Len(angka) >= 15 Then
    If No15 = "1" Then
    nomor15 = "seratus "
    ElseIf No15 = "0" Then
    nomor15 = ""
    Else
    nomor15 = ANGKAKATA(No15) & " ratus "
    End If
Else
nomor15 = ""
End If

'Jika angka terlalu banyak (> 15 digit)
If Len(angka) > 15 Then
    bilang = "Angka terlalu banyak (>15)"

Else
    If IsNull(n_angka) Then
    bilang = ""
    ElseIf n_angka < 0 Then
        bilang = "minus " & _
        Trim(nomor15 & nomor14 & nomor13 & _
        nomor12 & nomor11 & nomor10 & _
        nomor9 & nomor8 & nomor7 & nomor6 & _
        nomor5 & nomor4 & nomor3 & nomor2 _
        & nomor1 & Koma & " " & Satuan)
    Else
        bilang = Trim(nomor15 & nomor14 & nomor13 _
        & nomor12 & nomor11 & nomor10 & nomor9 & _
        nomor8 & nomor7 & nomor6 & nomor5 & nomor4 & _
        nomor3 & nomor2 & nomor1 & Koma & " " & Satuan)
    End If
End If

'Pilihan model huruf
If m_huruf = 4 Then
    TERBILANG = StrConv(Left(bilang, 1), 1) & _
    StrConv(Mid(bilang, 2, 1000), 2)
Else
    TERBILANG = StrConv(bilang, m_huruf)
End If
    TERBILANG = Replace(TERBILANG, "  ", " ", _
    1, 1000, vbTextCompare)
End Function


Contact Form

Name

Email *

Message *