Tuesday, March 8, 2011

Fungsi Makro Menghurufkan Angka

Fungsi lain yang disediakan oleh MS Excel untuk kita yang ingin lebih mengoptimalkan Excel adalah dengan membangun fungsi sendiri. Terkadang kita menemukan masalah yang tidak bisa diselesaikan dengan fungsi-fungsi yang sudah disediakan oleh Excel. Salah satunya adalah jika kita bermaksud untuk menghurufkan angka seperti dalam lembar kuitansi.

Setelah kita menuliskan angka tertentu, dalam lembar kuitansi atau invoice suatu transaksi biasanya akan disertai dengan sebutannya dalam tulisan (terbilang). Fungsi ini tentunya tidak disediakan oleh Excel, karena kita bermaksud untuk menuliskannya dalam bahasa Indonesia.

Oleh karena itu, kita perlu membangun fungsi tersebut sendiri. Menu yang dapat kita gunakan adalah fasilitas VBA (Visual Basic Application) yang sudah ada di Excel. Berikut adalah listingnya:

Dim Huruf(0 To 9) As String
Dim ax(0 To 3) As Double

Function INIT_angka()
Huruf(0) = ""
Huruf(1) = "Satu "
Huruf(2) = "Dua "
Huruf(3) = "Tiga "
Huruf(4) = "Empat "
Huruf(5) = "Lima "
Huruf(6) = "Enam "
Huruf(7) = "Tujuh "
Huruf(8) = "Delapan "
Huruf(9) = "Sembilan "
End Function

Function dgratus(angka As Double) As String
 Temp = ""
 INIT_angka
 panjang = Len(Trim(Str(angka)))
 nilai = Right("000", 3 - panjang) + Trim(Str(angka))
 For y = 3 To 1 Step -1
  ax(y) = Mid(nilai, y, 1)
 Next y
 Select Case ax(1)
  Case Is = 1
   Temp = "seratus "
  Case Is > 1
   Temp = Huruf(Val(ax(1))) + "" + "ratus "
  Case Else
   Temp = ""
  End Select

 Select Case ax(2)
  Case Is = 0
   Temp = Temp + Huruf(Val(ax(3)))
  Case Is = 1
 Select Case ax(3)
  Case Is = 1
   Temp = Temp + "sebelas "
  Case Is = 0
   Temp = Temp + "sepuluh "
  Case Else
   Temp = Temp + Huruf(Val(ax(3))) + "belas "
 End Select

 Case Is > 1
  Temp = Temp + Huruf(Val(ax(2))) + "puluh "
  Temp = Temp + " " + Huruf(Val(ax(3)))
 End Select
dgratus = Temp

End Function

Function dghuruf(angka As Double) As String
 Dim ratusan(0 To 6) As String
 Dim sebut(0 To 4) As String
 sebut(1) = " Ribu "
 sebut(2) = " Juta "
 sebut(3) = " Milyar "
 sebut(4) = " Trilyun "
 panjang = Len(Trim(Str(angka)))
 kali = Int(panjang / 3)
 If Int(panjang / 3) * 3 <> panjang Then
  kali = kali + 1
  sisa = panjang - Int(panjang / 3) * 3
  nilai = Right("000", 3 - sisa) + Trim(Str(angka))
 Else
  nilai = Trim(Str(angka))
 End If

 For x = 0 To kali
  ratusan(kali - x) = Mid(nilai, x * 3 + 1, 3)
 Next x

 For y = kali To 1 Step -1
  If y = 2 And Val(ratusan(y)) = 1 Then
   Temp = Temp + "seribu "
  Else
   If Val(ratusan(y)) = 0 Then
      Temp = Temp
   Else
    Temp = Temp + dgratus(Val(ratusan(y)))
    Temp = Temp + sebut(y - 1)
   End If
  End If
 Next y
 dghuruf = Temp
End Function



Berikut adalah screeshot-nya:


Selamat mencoba.

Sunday, March 6, 2011

Simulasi dengan Tombol Combo

Hal yang kadang kala kita jumpai dalam oleh data menggunakan MS Excel diantaranya adalah untuk melakukan simulasi data. Terdapat sekumpulan data yang terdiri dari beberapa set, kemudian kita diminta untuk melakukan simulasi skenario. Bagaimana hasilnya jika input diubah-ubah, tentunya akan mempengaruhi outputnya.

Semisal, kita diminta untuk menunjukkan hasil jika kita akan melakukan pengumpulan massa di tiga kota berbeda dengan ketentuan biayanya masing-masing. Bagaimana jika pertemuan massal tersebut dilakukan di Jakarta, Bandung dan Medan. Mana yang lebih efisien dari segi biayanya?

Berikut adalah contohnya:
Sebagaimana terlihat pada screenshoot di atas, kita dapat menggunakan fasilitas Developer untuk membuat pilihan tombol radio (combo). Jika kita pilih pilihan Jakarta, hasil perhitungannya akan langsung terlihat di sel G22. Demikian pula jika kita ganti pilihannya ke Bandung maupun Medan.

Langkahnya pada dasarnya terdiri dari tiga tahapan, yang pertama adalah pembuatan tombol radio (pilihan Jakarta, Bandung, Medan) dan langkah kedua adalah menyusun rumus/fungsi IF, serta langkah terakhir adalah membuat rumus SUM.

Langkah pertama pembuatan tombol radio dapat kita lakukan dengan mengklik ribbon/menu Developer, pilih Insert dan memilih dan menyeret/drag Option Button ke sel B3 lalu copy-kan ke B4 dan B5. Lalu namai masing-masing button tersebut dengan Jakarta, Bandung, dan Medan.

Langkah berikutnya adalah menuliskan fungsi IF sebagai berikut:
=IF($C$8=$C$3,HLOOKUP(D9,$D$2:$I$5,2,FALSE),IF($C$8=$C$4,HLOOKUP(D9,$D$2:$I$5,3,FALSE),HLOOKUP(D9,$D$2:$I$5,4,FALSE)))
Lalu copy-kan fungsi tersebut ke sel-sel berikutnya.

Langkah terakhir adalah menjumlah (fungsi SUM) dan merapikan tampilannya.
Silakan Anda ubah-ubah pilihannya dari Jakarta, Bandung maupun Medan, hasilnya akan langsung berubah.