Sekarang, kita akan mencoba untuk membuat fungsi sendiri di Excel. Fungsi tersebut bernama AngkaAjaib(atau nama lain yang anda kehendaki). Logikanya seperti yang saya tuliskan di postingan Intermezzo – Angka Ajaib. Silahkan lihat postingan itu.
Logikanya sederhana, seperti dibawah ini
Setiap huruf mempunyai nilai sendiri-sendiri berdasarkan urutan abjad abcd…dst. Nah apabila sebuah kata dimasukkan, maka fungsi akan menghitung nilai total dari huruf tersebut.
Contoh:
H A R D W O R K (kerja keras)
8 1 18 4 23 15 18 11 = 98
Implementasi Fungsi
Cara implementasi fungsi ini didalam Excel sebenarnya sederhana saja. Lihatlah kode dibawah ini:
Function AngkaAjaib(Tulisan)
Const Abjad = "abcdefghijklmnopqrstuvwxyz"
Panj = Len(Tulisan)
For i = 1 To Panj
Harga = InStr(1, Abjad, LCase(Mid(Tulisan, i, 1)), 1)
TempHarga = TempHarga + Harga
Next i
AngkaAjaib = TempHarga
End Function
Fungsi tersebut dapat diterangkan sebagai berikut
Function AngkaAjaib(Tulisan)
End Function
‘Ini merupakan deklarasi fungsi. Nama fungsi terserah kita, sedangkan variabel (Tulisan) merupakan tempat menampung kata yang ingin kita hitung nilainya. Jadi pemakaian fungsi ini di Excel nantinya seperti ini :
=AngkaAjaib(A2)
‘Ada perbedaan mendasar antara Sub dengan Function. Function mengembalikan nilai, sedangkan Sub hanya menunjukkan alur.
Contohnya, kalau kita ingin menghitung jumlah, gunakan Function, sedangkan apabila kita ingin membuat prosedur printing dokument, gunakan Sub. Sub biasanya dilekatkan dengan tombol, sedangkan function langsung menghitung hasil di cell.
Const Abjad = "abcdefghijklmnopqrstuvwxyz"
Kita masukkan urutan abjad didalam sebuah variabel konstan. Nantinya tulisan yang dihitung nilainya akan dibandingkan dengan konstanta abjad ini dengan menghitung posisinya menggunakan fungsi Instr()
Panj = Len(Tulisan)
Fungsi Len() menghitung berapa panjang tulisan, dan dimasukkan dalam variabel Panj. Fungsi Panj adalah untuk memastikan bahwa iterasi yang akan dijalankan program dibawahnya dimulai dari 1 sampai sejumlah panjang tulisan
For i = 1 To Panj
Harga = InStr(1, Abjad, LCase(Mid(Tulisan, i, 1)), 1)
TempHarga = TempHarga + Harga
Next i
i adalah variabel bantu, fungsinya cuman untuk menghitung saja. Perintah kode ini adalah:
kerjakan mulai dari 1 sampai dengan panjang tulisan (panj), hal berikut ini:
cari lokasi tulisan ke- i didalam Abjad (fungsi Instr()) yang dihitung mulai dari 1, dan masukkan nilainya dalam variabel harga.kemudian, tambahkan nilai tersebut dengan hasil perhitungan sebelumnya, dan simpan dalam variabel TempHarga
Fungsi lcase() digunakan untuk mengecilkan (lowercase) Tulisan. Ini karena tulisan bisa jadi ditulis dalam huruf kecil maupun huruf besar, sementara itu abjad kita dalam huruf kecil. bila tanpa fungsi lcase(), maka huruf besar tidak akan dihitung, karena pasti fungsi Instr() tidak akan menemukan string yang dicari
AngkaAjaib = TempHarga
akhirnya masukkan nilai total didalam TempHarga ke dalam hasil fungsi AngkaAjaib, untuk ditampilkan
Peletakan
Seperti biasa, masukkan fungsi yang anda buat dalam modul, seperti gambar dibawah ini. Apabila kurang jelas, langkah-langkah membuka modul baru secara lengkap ada di posting fungsi-membalik-tulisan-dalam-excel.
Selanjutnya anda bisa langsung memanggil fungsi tersebut sama seperti fungsi Excel yang lain. Contohnya seperti gambar dibawah ini
Ada yang kurang jelas?. Silahkan tulis di kolom komentar

Pingback: HariSaryono.Com
Pingback: Membuat Fungsi Terbilang di Excel « David hehehe is me
By mulyono, 22 March 2012 at 2:43 pm
pakar excel yang baik. kalau ingin memasukkan data otomatis terekam pada sheet lain bagaiman bos rumus. Terima kasih
By Admin, 22 March 2012 at 4:10 pm
@mulyono: bentar ya, saya juga rencana buat postingan kayak gitu. Yang jelas, harus pake VB
Pingback: HariSaryono.Com » Membuat Data Pemasukan dan Pengeluaran Harian di Excel
By momon, 23 April 2012 at 11:28 am
bos bisa bantu ga buating fungsi if
jika umur kuranng dari 1 tahun kolom 1
jika umur 1 – 5 tahun masuk ke kolom 2
jika umur 6-12 tahun masuk ke kolom 3
jika umur 13 – 18 tahun masuk ke kolom 4
jiak umur 19 – 64 tahun masuk ke kolom 5
jika umur lebih dari 65 masuk ke kolom 6
mohon bantuannya ya
balas ke emal saya
terimakasih
By Admin, 25 April 2012 at 9:32 am
@momon: sorry lama jawab, lagi sibuk urusan dunia nyata.
jawabannya coba lihat disini:
http://www.editgrid.com/user/harisaryono/jawaban_momon
By aan, 15 May 2012 at 5:58 pm
nanya bos, kolom A1=M, B1=L, C1=K, D1= R, E1=MR, Bagaimana saya bisa mendapatkan hasil penjumlahan Dari A1 Sampai E1, Pada Kolom F1, jika M=1, L=1,5, K=0, R=2, dan MR=2,5 terima kasih sebelumnya
By Admin, 15 May 2012 at 7:53 pm
@aan: maksudnya pake vb?. Kalau ya, anda bisa gunakan array untuk mencari harga huruf yang bersangkutan. Kalau tidak pakai VB, berarti Di A2-E2, anda tulis nilai masing-masing huruf, lantas di F2 dihitung. Kalau F1 dijumlahkan, hasilnya pasti nol, soalnya huruf gak bisa dijumlahkan.
tq.
By yudis, 21 June 2012 at 11:06 pm
Hallo Pak Admin !!
Perkenalkan nama saya Yudis..
Saya Berangan-angan ingin menguasai rumus-rumus excel…apakah bapak mau membagi sedikit ilmu yang bapak miliki kepada saya ???
dan pertanyaan pertama saya adalah :
bagaimana rumus :
penambahan atau pengurangan yang beda sheet( sheet 1 dan sheet 2), kemudian jumlahnya supaya berada di sheet yang lain ( sheet 3).
apakah ada rumusnya pak ??
Mohon jawabannya…dan terimakasih sebelumnya atas perhatiannya !!!
By Admin, 22 June 2012 at 12:57 pm
Misal perkalian:
klik aja Sheet 3, misal pilih A1.
di sheet3!A1 tulis =
Klik tab Sheet1, klik A1, tulis *
Klik tab Sheet2, klik A1
Tekan Enter
Maka di Sheet3, akan terdapat rumus =Sheet1!A1*Sheet2!A1
Tarik aja rumusnya kebawah, maka rumus akan terkopi dengan otomatis
Itu kalau data anda di A1. Kalau di tempat lain, tinggal klik dimana data itu berada.
tq.
By Rska, 28 June 2012 at 3:17 pm
pak saya mo tannya dong,
jika saya ingin menghitung pembagian tetapi
nilai rata-rata berada pada sheet1 H89
nilai pada sheet 2 F10
saya ingin total ada pada sheet2 E10
yaitu nilai pada sheet 2 F10 dibagi nilai rata-rata pada sheet1 H89
saya sudah coba =F10/’Nilai Tukar’!H89
tetapi nilainya tidak sesuai, nilainya kurang 20 point,
Mohon pencerahannya pak…
sebelum dan sesudahnya saya ucapkan Terima kasih.
By Admin, 1 July 2012 at 10:41 am
Saya ingin memperjelas pertanyaan anda
1. Di Sheet1!H89 terdapat nilai rata-rata
2. Sheet2 —> E10 berisi nilai total. (mestinya rumusnya =Sum(F1:f10) ya?
3. Sheet2 —> F10 berisi nilai. (Maksudnya F1:f10? masak datanya cuman 1 mau dirata-rata?)
Kurang 20 point, mungkin karena range datanya untuk fungsi average kurang.
Itu tebakan saya.
catatan: perhitungan komputer gak mungkin salah, tetapi yang salah kebanyakan adalah cara kita menyuruh komputer dalam menghitung. Kalau manusia ini artinya salah persepsi.
Untuk rata-rata, paling gampang dengan menggunakan fungsi =average
By alif, 16 November 2012 at 11:34 am
Salam!
Saya Alif, tertarik untuk mencoba Membuat, (Fungsi Sendiri di Excel, Intermezzo Angka).
Datanya sebagai berikut :
(a/e/u/e/o=1), (b/c=2), (d/f=3), (g/h=4), (j/k=5), (l/m= 6),
(n/p=7), (q/r=8), (t/s=9), (v/w=10), (x/y/z=11), (ng/ny=12).
Bisakan kalau datanya seperti di atas.
Tolong bantuanya beserta tahapan mengerjakanya, langsung ke email saya (alifkhayara @gmail.com)
Terimakasih atas bantuanya
By Admin, 20 November 2012 at 9:39 pm
Pastekan fungsi ini di New Module
==================================
Function NilaiHuruf(huruf)
NilaiHuruf = 0
huruf = LCase(huruf)
For i = 1 To Len(huruf)
kar = Mid(huruf, i, 1)
Select Case kar
Case “a”, “i”, “u”, “e”, “o”: Nilai = 1
Case “b”, “c”: Nilai = 2
Case “d”, “f”: Nilai = 3
Case “g”, “h”: Nilai = 4
Case “j”, “k”: Nilai = 5
Case “l”, “m”: Nilai = 6
Case “q”, “r”: Nilai = 8
Case “t”, “s”: Nilai = 9
Case “v”, “w”: Nilai = 10
Case “x”, “y”, “z”: Nilai = 11
Case “n”:
nextchar = Mid(huruf, i + 1, 1)
Select Case nextchar
Case “g”, “y”:
Nilai = 12
i = i + 1
Case Else: Nilai = 7
End Select
Case “p”: Nilai = 7
Case Else:
Nilai = 0
End Select
NilaiHuruf = NilaiHuruf + Nilai
Next i
End Function
By MOCH SAIFUL, 16 February 2013 at 9:00 pm
PAKSAYA MAU TANYA DOANG . BISA BANTU APA NGGAK???
GINI KALO MAU BUAT PRINT DENGAN MENEKAN TOMBOL YANG SAYA BUAT GIMANA RUMUSNYA. RENCANA SIH PAKETOMBOL COMMAND BUTTON. ATAS BANTUANNYA SAYA UCAPKAN TERIMA KASIH
jawab: memang benar, anda harus memakai tombol command button. Untuk itu, anda record dulu sebuah makro untuk mulai memprint lembar yang ingin anda print. Caranya di developer – pilih record macro. Lalu anda tekan tombol CTRL+P untuk memprint, setelah itu hentikan makro. Nah dari langkah ini akan dibuat sebuah makro baru, misalkan anda namai PrintDocument.
Anda tinggal menulis di program command button tadi untuk memanggil prosedur PrintDocument yang telah dibuat
By Sofi, 19 March 2013 at 10:42 am
mau tanya saya sudah coba membuat fungsi terbilang, ketika dicoba sudah jadi.
tetapi setelah di-save dan besoknya dicoba lagi kok keluar kode error #NAME?
itu bagaimana ya?