Salah satu kebutuhan yang sering dihadapi dalam laporan keuangan adalah mengubah angka menjadi teks atau kalimat terbilang, misalnya mengubah angka menjadi format teks dalam bahasa Indonesia, seperti "Seratus Dua Puluh Tiga Rupiah". Sayangnya, Excel tidak memiliki fungsi bawaan untuk melakukan hal ini, sehingga kita perlu membuatnya sendiri dengan menggunakan VBA (Visual Basic for Applications).
Jika kita sebagai pengembang atau membuat aplikasi berbasis excel yang membutuhkan fungsi terbilang, maka sangat disarankan fungsi terbilang di tanam atau di masukan pada module aplikasi yang dibuat dan jangan di pisahkan yang nantinya sebagai addins, namun untuk kebutuhan pribadi maka silakan dibuat sebagai addins.
Langkah-langkah Membuat Fungsi Terbilang di Excel
Pertama Buka Excel dan Aktifkan VBA Editor
Untuk mulai membuat fungsi terbilang, kita perlu membuka Excel dan mengakses editor VBA. Berikut langkah-langkahnya:
- Buka aplikasi Excel.
- Tekan tombol Alt + F11 untuk membuka VBA Editor.
- Pada jendela VBA Editor, klik
Insert
>Module
. Sebuah module baru akan terbuka di mana kita bisa menulis kode VBA.
Tulis Kode VBA untuk Fungsi Terbilang
Salin kode terbilang keuangan berikut ke dalam module yang telah dibuat di VBA Editor. Kode ini akan mengubah angka menjadi teks terbilang dalam bahasa Indonesia.
Terbilang Keuangan
Function terBilang(ByVal Angka As Double, Optional TextCase As String = "normal", Optional MataUang As String = "") As String Dim Satuan As Variant Dim Temp As String Dim terbilangUtama As String Dim TerbilangDesimal As String Dim NilaiUtama As Long Dim NilaiDesimal As Long Satuan = Array("", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan", "Sepuluh", "Sebelas") NilaiUtama = Int(Angka) NilaiDesimal = Round((Angka - NilaiUtama) * 100, 0) If NilaiUtama < 12 Then terbilangUtama = Satuan(NilaiUtama) ElseIf NilaiUtama < 20 Then terbilangUtama = Satuan(NilaiUtama - 10) & " Belas" ElseIf NilaiUtama < 100 Then terbilangUtama = Satuan(NilaiUtama \ 10) & " Puluh " & terBilang(NilaiUtama Mod 10) ElseIf NilaiUtama < 200 Then terbilangUtama = "Seratus " & terBilang(NilaiUtama - 100) ElseIf NilaiUtama < 1000 Then terbilangUtama = Satuan(NilaiUtama \ 100) & " Ratus " & terBilang(NilaiUtama Mod 100) ElseIf NilaiUtama < 2000 Then terbilangUtama = "Seribu " & terBilang(NilaiUtama - 1000) ElseIf NilaiUtama < 1000000 Then terbilangUtama = terBilang(NilaiUtama \ 1000) & " Ribu " & terBilang(NilaiUtama Mod 1000) ElseIf NilaiUtama < 1000000000 Then terbilangUtama = terBilang(NilaiUtama \ 1000000) & " Juta " & terBilang(NilaiUtama Mod 1000000) ElseIf NilaiUtama < 1000000000000# Then terbilangUtama = terBilang(NilaiUtama \ 1000000000) & " Miliar " & terBilang(NilaiUtama Mod 1000000000) ElseIf NilaiUtama < 1E+15 Then terbilangUtama = terBilang(NilaiUtama \ 1000000000000#) & " Triliun " & terBilang(NilaiUtama Mod 1000000000000#) End If If NilaiDesimal > 0 Then If NilaiDesimal < 12 Then TerbilangDesimal = Satuan(NilaiDesimal) ElseIf NilaiDesimal < 20 Then TerbilangDesimal = Satuan(NilaiDesimal - 10) & " Belas" Else TerbilangDesimal = Satuan(NilaiDesimal \ 10) & " Puluh " & Satuan(NilaiDesimal Mod 10) End If terBilang = Trim(terbilangUtama) & " Koma " & TerbilangDesimal Else terBilang = Trim(terbilangUtama) End If If MataUang <> "" Then terBilang = terBilang & " " & MataUang End If Select Case LCase(TextCase) Case "ucase" terBilang = UCase(terBilang) Case "lcase" terBilang = LCase(terBilang) Case "ulcase" terBilang = UCase(Left(terBilang, 1)) & LCase(Mid(terBilang, 2)) End Select End Function
Terbilang Nilai Desimal
Function terbilangNilai(ByVal Angka As Double, Optional TextCase As String = "normal") As String Dim Satuan As Variant Dim bilangUtama As String Dim TerbilangDesimal As String Dim NilaiUtama As Long Dim NilaiDesimal As String Satuan = Array("", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan") NilaiUtama = Int(Angka) NilaiDesimal = Format((Angka - NilaiUtama) * 100, "00") bilangUtama = terbilangUtama(NilaiUtama, Satuan) If NilaiDesimal = "00" Then TerbilangDesimal = "Nol Nol" Else TerbilangDesimal = terbilangUtama(CInt(Left(NilaiDesimal, 1)), Satuan) & " " & terbilangUtama(CInt(Right(NilaiDesimal, 1)), Satuan) End If terbilangNilai = Replace(Trim(bilangUtama), " Nol", "") & " Koma " & Trim(TerbilangDesimal) Select Case LCase(TextCase) Case "ucase" terbilangNilai = UCase(terbilangNilai) Case "lcase" terbilangNilai = LCase(terbilangNilai) Case "ulcase" terbilangNilai = UCase(Left(terbilangNilai, 1)) & LCase(Mid(terbilangNilai, 2)) End Select End Function Function terbilangUtama(ByVal Angka As Long, ByVal Satuan As Variant) As String Dim Hasil As String If Angka = 0 Then Hasil = "Nol" ElseIf Angka < 10 Then Hasil = Satuan(Angka) ElseIf Angka < 20 Then Hasil = Satuan(Angka Mod 10) & " Belas" ElseIf Angka < 100 Then Hasil = Satuan(Angka \ 10) & " Puluh " & terbilangUtama(Angka Mod 10, Satuan) ElseIf Angka < 200 Then Hasil = "Seratus " & terbilangUtama(Angka - 100, Satuan) ElseIf Angka < 1000 Then Hasil = Satuan(Angka \ 100) & " Ratus " & terbilangUtama(Angka Mod 100, Satuan) ElseIf Angka < 2000 Then Hasil = "Seribu " & terbilangUtama(Angka - 1000, Satuan) ElseIf Angka < 1000000 Then Hasil = terbilangUtama(Angka \ 1000, Satuan) & " Ribu " & terbilangUtama(Angka Mod 1000, Satuan) Else Hasil = "Angka terlalu besar" End If terbilangUtama = Trim(Hasil) End Function
Setelah kita menyalin kode di atas, simpan dengan menekan Ctrl + S, kemudian tutup jendela VBA Editor.
Menggunakan Fungsi Terbilang Keuangan
Setelah fungsi nilai keuangan ditambahkan, kita bisa menggunakannya langsung di dalam lembar kerja Excel seperti menggunakan fungsi Excel biasa. Berikut adalah beberapa contoh penggunaan fungsi Terbilang:
- Untuk mengubah angka di sel A1 menjadi teks terbilang
=terBilang(A1)
=terBilang(A1;"ucase"))
=terBilang(A1;"lcase")
=terBilang(A1;"ulcase")
=terBilang(A1;"ulcase";"Rupiah")
Fungsi Terbilang ini akan mengubah angka yang ada di sel Excel menjadi teks dalam bahasa Indonesia. Misalnya, jika di sel A1 terdapat angka 123, maka hasil dari formula =terBilang(A1)
adalah Seratus Dua Puluh Tiga. Jika kita menambahkan parameter Rupiah, hasilnya akan menjadi Seratus Dua Puluh Tiga Rupiah.
Menggunakan Fungsi Terbilang Nilai Desimal
Setelah fungsi nilai desimal ditambahkan, kita bisa menggunakannya langsung di dalam lembar kerja Excel seperti menggunakan fungsi Excel biasa. Berikut adalah beberapa contoh penggunaan fungsi Terbilang:
- Untuk mengubah angka di sel A1 menjadi teks terbilang
=terbilangNilai(A1)
=terbilangNilai(A1;"ucase")
=terbilangNilai(A1;"lcase")
=terbilangNilai(A1;"ulcase")
Fungsi Terbilang ini akan mengubah angka yang ada di sel Excel menjadi teks dalam bahasa Indonesia. Misalnya, jika di sel A1 terdapat angka 90,07 maka hasil dari formula =terbilangNilai(A1)
adalah Sembilan Puluh Koma Nol Tujuh. atau angka 81,10 maka hasilnya adalah Delapan Puluh Satu Koma Satu Nol.
Jika ingin menyimpan sebagai Add-in
Setelah selesai memasukan kode VBA, simpan file dengan memilih File > Save As.
Kemudian pilih lokasi penyimpanan dan pada opsi Save as type, pilih Excel Add-In (.xlam)*.
Beri nama file add-in dan klik Save.
Mengaktifkan Add-in di Excel
- Kembali ke Excel dan buka File > Options > Add-Ins.
- Pada bagian bawah, pilih Excel Add-ins dan klik Go.
- Klik Browse, cari file add-in yang sudah kita simpan, dan klik OK.
- Centang kotak add-in untuk mengaktifkannya, kemudian klik OK.
Sekarang fungsi atau makro yang Kita buat akan tersedia di Excel. Jika berupa fungsi, kita bisa menggunakannya langsung di lembar kerja Excel seperti fungsi bawaan lainnya. Jika berupa makro, kita dapat menjalankannya melalui tab Developer > Macros.
Kesimpulan
Dengan menggunakan macro VBA, kita dapat membuat fungsi terbilang sendiri di Excel yang sangat berguna untuk berbagai kebutuhan, seperti penulisan nilai pada invoice, kuitansi, atau laporan keuangan. Fungsi ini dapat disesuaikan sesuai kebutuhan dengan menambahkan parameter tambahan seperti mata uang atau mengubah format teks.
Membuat fungsi terbilang ini dapat menghemat waktu dan menghindari kesalahan saat mengonversi angka ke dalam teks secara manual. Selamat mencoba!