Invent

Membuat Fungsi Sendiri di Excel, Intermezzo Angka


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.

Angka Ajaib

Selanjutnya anda bisa langsung memanggil fungsi tersebut sama seperti fungsi Excel yang lain. Contohnya seperti gambar dibawah ini

hasil perhitungan angka

Ada yang kurang jelas?. Silahkan tulis di kolom komentar

Istilah Pencarian:

Klik untuk melihat isi list

17 Responses to Membuat Fungsi Sendiri di Excel, Intermezzo Angka

    Pingback: HariSaryono.Com

    Pingback: Membuat Fungsi Terbilang di Excel « David hehehe is me

  1. 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

  2. Pingback: HariSaryono.Com » Membuat Data Pemasukan dan Pengeluaran Harian di Excel

  3. 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

  4. 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 

  5. 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. 

  6. 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.

  7. 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

  8. 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

  9. 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

  10. 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?

Archives

Kategori

Who's Online

20 visitors online now
17 guests, 3 bots, 0 members
Map of Visitors

Masukkan email anda untuk mendapatkan update website ini secara otomatis di email anda. Bergabunglah bersama 1862 Subscriber yang lain

Visit also our social profiles:

Scroll to top