dear Mr kid, Bagus, dan guru baru saya Miss Jan Raisin solusi formula yang di berikan Miss Jan sangatlah bagus. Namun ada sedikit kendala ketika saya melakukan misstype. contoh ketika saya tidak sengaja mengetik 2 kali tanda "spasi" maka formula yg diberikan Miss Jan menambahkan 20 untuk harga 1 spasi yg bertambah. ex: 12.22.70.8.115#20 11.23.101.65.9#20 1300#100 = 300 12.22.70.8.115#20 (tak sengaja tambah 1 spasi) 11.23.101.65.9#20 (tak sengaja 1 spasi)1300#100 maka total setelah mistype 2x spasi yg bertambah = 340
kiranya Bapak/Ibu excel-lent semua dapat membantu. mohon bimbingan dan kesabarannya Ibu/Bapak yah.. (angkat saya jadi muridmu) Pada Kamis, 6 Februari 2014 15:02, Jan Raisin <[email protected]> menulis: hai pak Pardede, coba bantu dengan UDF (User Defined Function) scriptnya ditulis dalam sebuah modul dengan scope Public agar dapat dipanggil dari worksheet seperti fungsi Excel lainnya Option Explicit ' =============================================== ' ' UDF SumIfSC = Summary With Special Conditions ' ' Untuk milis belajar-excel ' ' Miss Jan Raisin ' ' Di bawah langit yang sama , 06-Feb-2014 ' ' =============================================== ' Public Function SUMIFSC(sData As String, sDel As String, sDelPart As String, sDelVal As String) As Double Dim sFull As String, sPart As String Dim iDel As Integer, iPart As Integer Dim i As Integer, j As Integer, k As Integer Dim dbVal As Double, dbSum As Double iDel = Len(sData) - Len(Application.WorksheetFunction.Substitute(sData, sDel, "")) sFull = sData For i = 1 To iDel + 1 For j = 1 To Len(sFull) If Mid(sFull, j, 1) <> sDel Then sPart = sPart & Mid(sFull, j, 1) Else sFull = Mid(sFull, j + 1, Len(sFull) - j) Exit For End If Next j iPart = Len(sPart) - Len(Application.WorksheetFunction.Substitute(sPart, sDelPart, "")) + 1 For k = 1 To Len(sPart) If Mid(sPart, k, 1) = sDelVal Then dbVal = CDbl(Mid(sPart, k + 1, Len(sPart) - k)) Exit For End If Next k dbSum = dbSum + (iPart * dbVal) sPart = vbNullString Next i SUMIFSC = dbSum End Function syntaxnya: =SumIfSC( data ,delimiter , delimiter_dalam_setiap_bagian , delimiter_nilai ) untuk setiap delimiter harus ditulis di antara tanda kutip dua contoh penggunaan dengan data di cel A1 delimiter adalah spasi, ditulis " " delimiter di dalam setiap bagian adalah titik, ditulis "." delimiter untuk nilai adalah tanda pagar, ditulis "#" formula lengkapnya menjadi =SumIfSC( A1 ," " , "." , "#" ) jika regional setting komputer setempat adalah Indonesian maka ubah seluruh tanda koma yang berwarna merah menjadi titik koma file terlampir, pastikan macro diizinkan bekerja di komputer anda Salam, -Miss Jan Raisin- Pada 6 Februari 2014 13.32, Pukka Hamonangan Pardede <[email protected]> menulis: > >Dear Bagus dan Mr. Kid >rumus yg terakhir sebenarnya bekerja tapi nampaknya hanya kepada contoh: >12.22.70.8.115#20 11.23.101.65.9#20 1300#100 (hanya 3 tanda #) >jadi mohon bantuannya sekali lg pak, karena data yg di entri biasanya berubah >( kadang hanya 1 tanda # dan kadang sampai 30 tanda #. artinya formula yg kita >inginkan akan bekerja pada unlimited tanda #. > > >nb: "panjang/pendeknya formula yg dihasilkan tidak menjadi masalah pak" > > >mohon bimbingan dan kesabarannya ya pak.. >(angkat saya jadi muridmu) > > > > >

