Pak Danang Yth,
Jika dilihat pada contoh datanya (maaf hanya bisa dengan GDocs)
ada baris data yang perlu menjadi perhatian, karena agak berbeda
strukturnya, yaitu seperti baris 12 dst : (misal untuk baris 12)
Kolom A Kolom B
BOO012WM1_CIGOMBONGMW 17*;*18*;*19*;*20*:*22
Jika :
1. Penggunaan *karakter titik dua tersebut adalah sebuah kesalahan saja*,
sedangkan yang* data asli selalu konsisten titik koma*, coba formula :
=Len( b12 ) - Len( Substitute( b12 , "*;*" , "" ) ) + 1
2. Penggunaan *karakter titik dua tersebut setara maknanya* dengan titik
koma (karena hasil yang diinginkan tetap bernilai 5), coba formula :
=Len( b12 ) - Len( Substitute( *Substitute( b12 , ":" , "" )* , "
*;*" , "" ) ) + 1
Nah, kalau ternyata penggunaan* karakter titik dua tersebut artinya sampai
dengan* baru rada mumet. Dengan array formula yang agak panjang sepertinya
bisa. Jika ternyata nested formulanya lebih dari 7 level, maka di excel
2003 kebawah membutuhkan kolom bantu atau named range juga bisa.
Moga-moga ada BeExceler yang bersedia memberi solusinya.
Kalau dengan UDF, kira-kira bunyinya seperti ini : [letakkan di sebuah
module]
(tapi dites dulu, sapa tahu ada yang gak pas)
public function CountTextList( sData as string ) as long
dim lRes as long, lTitikDua as long
dim sTmp() as string
dim vTmp as variant
stmp=split( sdata, ";" )
for each vtmp in stmp()
ltitikdua=instr(vtmp,":")
select case ltitikdua
case 0, 1 , len(vtmp)
lres=lres+1
case else
lres=lres+1+ abs( left$(vtmp,ltitikdua-1) - mid$(vtmp,
ltitikdua+1) )
end select
next vtmp
counttextlist=lres
end function
cara pakai di worksheet :
=counttextlist( b12 )
Wassalam.
Kid.
2011/11/4 Danang Yuliyanto <[email protected]>
> **
>
>
> Dear All,
>
> Mohon pencerahannya, kira2 untuk mendapatkan data yang diinginkan
> mengunakan fungsi apa?
> Terlampir
>
> Terimakasih,
>
> ***Danang
> *
>
>
>
>