Tecnologia, programação e muito Visual FoxPro.

segunda-feira, 16 de agosto de 2010

Re: ]] XL-mania [[ Memisahkan angka, huruf, dan angka

 

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, yaituHow 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

   For i = 1 To Len(Str)
      ' Ka mewakili karakter yg sedang diraba (karakter ke i)
      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



__._,_.___
Recent Activity:
+-:: 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              |
+-------------------------------------------------------------------+
MARKETPLACE

Get great advice about dogs and cats. Visit the Dog & Cat Answers Center.


Hobbies & Activities Zone: Find others who share your passions! Explore new interests.


Stay on top of your group activity without leaving the page you're on - Get the Yahoo! Toolbar now.

.

__,_._,___

Nenhum comentário:

Arquivo do blog