akhirnya....
kita sodorkan listing UDF yg cukup ringkas (dibanding 3 udf pendahulunya);
seperti ini
Function DelimTextNum(S As String, Optional D As String = ";")
'ctv/14 aug 2010
Const A As String = "0123456789"
Dim W As String, p As String, q As String, i As Integer
S = Trim(S)
For i = 1 To Len(S)
p = Mid(S, i, 1)
If i > 1 Then q = Mid(S, i - 1, 1) Else q = p
W = IIf((InStr(1, A, p) > 0) = (InStr(1, A, q) > 0), W + p, W + D + p)
Next i
DelimTextNum = W
End Function
silakan dicoba sendiri di worksheet lampiran.
2010/8/15 STDEV(i) <setiyowati.devi@gmail.com>
Masih melanjutkan posting sebelumnya
sekarang saya mo ceriwis tentang: Cara Lain menampilkan data
maupun cara lain meng-Expresikan algoritma kedalam coding.
1. jika data ingin dihasilkan tanpa array formula
1.a.
semua hasil diitampilkan dalam 1 (satu cell)
misal data tertulis di cell A1 = "100SEV50"
formula biasa, dgn memanfaatkan fungsi (UDF) GroupNumText
=GroupNumText(A1, " - ")
menghasilkan "100 - SEV - 50"
1.b.
setiap cell menampilkan satu hasil
misal data = "100SEV50"
formula biasa, dgn memanfaatkan fungsi (UDF) GroupNumText
=SeparateNumtext($A1,1)
=SeparateNumtext($A1,2)
=SeparateNumtext($A1,3)
menghasilkan 3 data di 3 cell
"100"
"SEV"
"50"
1. jika data ingin dihasilkan dengan array formula
array formula ditulis di 3 cells sebaris
{=SplitNumText(A1)}
menghasilkan 3 data di 3 cell
"100"
"SEV"
"50"
ketiga Fungsi tsb ( GroupNumText, SeparateNumText dan SplitNumText )
adalah FBD (fungsi buatan dèwèk) yg merupakan peringkasan code dan pengembangan fitur
dari UDF yg kemarin sudah diposted
Contoh penggunaan ada di workbook terlampir.
Berikut ini listing code yg diberi beberapa comments agar (bagi yg berminat) mudah
mengikuti maksud tiap kalimat codenya
Tantangannya masih sama, yaitu: How To: membedakan
SEKELOMPOK karakter yg ANGKA SEMUA -vs - SEKELOMPOK karakter yg HURUF SEMUA
sedangkan kondisi data-awal = semua karakter ngumpul jadi 1 string tanpa tanda pemisah
'------ 1 -------
Function GroupNumText(Cel As Range, Optional Delimiter As String = ";")'--------------------------------------------
'--------------------------------------------
' siti Vi / 14 aug 2010 / milis XL-maniak
' memisah grup angka vs grup huruf (versi 1)
' hasil berupa 1 (satu) data text / dlm 1 cell
' misal Data awal = "ABC123DEF456"
' hasil = "ABC;123;DEF;456"
'--------------------------------------------
Dim TxHasil As String ' penampung hasil kata demi kata
Dim dWord As String ' penampung karakter yg sejenis menjadi se-grup (kata)
Dim Str As String ' nilai string cell yg dirujuk
Dim Ka As String ' Karakter yg sedang di-raba dlm Loop i
Dim Kx As String ' Karakter SEBELUM karakter ke i
Dim KaType As Boolean ' Apakah Ka = Angka ?
Dim KxType As Boolean ' Apakah Kx = Angka ?
Dim i As Integer ' counter (pencacah Loop)
Const Angka As String = "0123456789" 'rujukan pembanding karakter ke i
Str = Trim(Cel.Text) & " "
'Loop semua karakter dlm data kalimat' Ka mewakili karakter yg sedang diraba (karakter ke i)
For i = 1 To Len(Str)
Ka = Mid(Str, i, 1)
' Kx mulai dicari setelah i > 1 (bernilai 2 dst..)
If i > 1 Then Kx = Mid(Str, i - 1, 1) Else Kx = Ka
' mencatat Type Ka dan Kx (bisa True bisa False)
KaType = InStr(1, "0123456789", Ka) > 0
KxType = InStr(1, "0123456789", Kx) > 0
If KaType = KxType Then 'jika type-nya sama
dWord = dWord & Ka ' karakter ditampung ke dlm dWord
If i = Len(Str) Then TxHasil = TxHasil & Trim(dWord) & Delimiter
Else ' Jika type tidak sama
' dWord di rangkai dng dWord yg sudah ada
' tetapi diberi tanda pemisah,
' lalu dicatat di variable TxHasil
TxHasil = TxHasil & Trim(dWord) & Delimiter
' jangan lupa mengosongkan Nilai dWord
dWord = ""
' dWord mulai lagi menampung karakter yg sedang diproses
dWord = dWord & Ka
End If
Next i
' Delimiter terkanan dibuang dari text-hasil-akhir
' sambil ditampung ke variable NamaFungsi
GroupNumText = Left(TxHasil, Len(TxHasil) - Len(Delimiter))
End Function
__._,_.___
+-:: XL-mania ::::::::::::::::::::----------------------------------+
| selamat menunaikan ibadah puasa... walau perut lapar, tanya excel |
| jalan terus... malu bertanya telat pulang kantor :D :D :D |
| http://www.facebook.com/group.php?gid=37671048001&ref=mf |
+-------------------------------------------------------------------+
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message, melecehkan, tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan winzip jika perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke |
| XL-mania-subscribe@yahoogroups.com atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/ |
+-------------------------------------------------------------------+
| Berikan testimoni di : http://www.friendster.com/xlmania atau... |
| http://www.xl-mania.com/2008/06/testimoni-xl-mania.html |
+-------------------------------------------------------------------+
| Message lama ada di : |
| http://groups.yahoo.com/group/XL-mania/messages [perlu yahoo id] |
| http://www.mail-archive.com/xl-mania@yahoogroups.com |
+-------------------------------------------------------------------+
| selamat menunaikan ibadah puasa... walau perut lapar, tanya excel |
| jalan terus... malu bertanya telat pulang kantor :D :D :D |
| http://www.facebook.com/group.php?gid=37671048001&ref=mf |
+-------------------------------------------------------------------+
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message, melecehkan, tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan winzip jika perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke |
| XL-mania-subscribe@yahoogroups.com atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/ |
+-------------------------------------------------------------------+
| Berikan testimoni di : http://www.friendster.com/xlmania atau... |
| http://www.xl-mania.com/2008/06/testimoni-xl-mania.html |
+-------------------------------------------------------------------+
| Message lama ada di : |
| http://groups.yahoo.com/group/XL-mania/messages [perlu yahoo id] |
| http://www.mail-archive.com/xl-mania@yahoogroups.com |
+-------------------------------------------------------------------+
MARKETPLACE
.
__,_._,___
Nenhum comentário:
Postar um comentário