Hai Pukka, kalau pakai UDF SumIFSC, coba begini :
=SumIfSC( Trim(A1) , " " , "." , "#" ) Wassalam, Kid. 2014-02-06 20:22 GMT+07:00 Pukka Hamonangan Pardede <[email protected]> : > > > 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) > > > > > > >

