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

Kirim email ke