Tìm kiếm và thống kê chuỗi kí tự (1 người xem)

  • Thread starter Thread starter anjhan
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

anjhan

Thành viên mới
Tham gia
19/4/09
Bài viết
22
Được thích
1
Nghề nghiệp
Đang thất nghiệp
Mình có vấn đề sau mong các bạn giúp sức:

Có 1 dãy trong ô B1: {25 27 28 57 58 78}
1. Néu muốn tách các số ở trong ô B1 ra thành một mảng riêng lẻ các số thì làm tn?

2. Mình có một vấn đề sau:

có số : 7783456

Nhiệm vụ là phải liệt kê các số không xuất hiện trong ô F7 (các số từ 0-9)
Ở đây là các số 0,1,2,9.

3. Có số sau 1224566

Yêu cầu là liệt kê ra các số xuất hiện nhiều hơn 1 lần. Ở đây là 2 và 6
Mình cũng thử dùng Condition Format để tìm. Chẳng hạn
64674
436724
212456

Khi muốn tìm số 6 thì số 6 sẽ hiện lên màu đỏ, in đậm và tăng lên 2 cỡ chữ.

Mong bạn giúp đỡ. Cảm ơn bạn rất nhiều. Excel của mình còn kém, có gì mong bạn đừng chê cười nhé.
PS: Có thể làm ra 1 Myfunction như ở trên bằng macro thì tuyệt quá.
 

File đính kèm

Mình có vấn đề sau mong các bạn giúp sức:

Mong bạn giúp đỡ. Cảm ơn bạn rất nhiều. Excel của mình còn kém, có gì mong bạn đừng chê cười nhé.
PS: Có thể làm ra 1 Myfunction như ở trên bằng macro thì tuyệt quá.

Câu 1 : tham khảo hàm Split trong vba
câu 2 : bạn tham khảo code bên dưới :
[GPECODE=vb]
Sub GPE()
Dim Str As String, txt As String, tmp As String
Dim i as long
Str = "0123456789"
txt = "7783456"
For i = 1 To Len(txt)
tmp = Mid(txt, i, 1)
If InStr("0123456789", tmp) Then Str = Replace(Str, tmp, "")
Next
MsgBox Str
End Sub
[/GPECODE]

Các câu còn lại : " Để mai tính ..."
 
Lần chỉnh sửa cuối:
Mình có vấn đề sau mong các bạn giúp sức:

Có 1 dãy trong ô B1: {25 27 28 57 58 78}
1. Néu muốn tách các số ở trong ô B1 ra thành một mảng riêng lẻ các số thì làm tn?

.

trả lời câu 1 cho bạn
Sửa hàm MyFunction của bạn thành:
Mã:
Function MyFunction(Str As String)
  Dim MyStr As String, i As Long, j As Long, n As Long
  Dim Arr()
  On Error Resume Next
  MyFunction = vbNullString
  For i = 0 To 9
    If InStr(Str, i) Then MyStr = MyStr & i
  Next
  If Len(MyStr) > 1 Then
    ReDim Arr(1 To (Len(MyStr) * (Len(MyStr) - 1)) / 2)
    For i = 1 To Len(MyStr) - 1
      For j = i + 1 To Len(MyStr)
        n = n + 1
        Arr(n) = Mid(MyStr, i, 1) & Mid(MyStr, j, 1)
      Next
    Next
    MyFunction = Arr
  End If
End Function
--------------------
Các câu còn lại bạn tự mình suy nghĩ xem
 
câu 2 : bạn tham khảo code bên dưới :
[GPECODE=vb]
Sub GPE()
Dim Str As String, txt As String, tmp As String
Dim i as long
Str = "0123456789"
txt = "7783456"
For i = 1 To Len(txt)
tmp = Mid(txt, i, 1)
If InStr("0123456789", tmp) Then Str = Replace(Str, tmp, "")
Next
MsgBox Str
End Sub
[/GPECODE]
Câu 2 này dùng VBScript.RegExp mới ngon
Thử nghiệm xem
 
Câu 2 này dùng VBScript.RegExp mới ngon
Thử nghiệm xem

Anh xem em viết thế này được chưa ?
[GPECODE=vb]
Function Regx(txt As String)
Dim str As String
str = "0123456789"
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "[" & txt & "]"
Regx = .Replace(str, "")
End With
End Function
[/GPECODE]

Hàm myfunction anh sửa lại em test chuỗi " 255,245 98 54" hình như chưa đúng ý chủ topic , hay là anh muốn chủ topic phải "lao động" một ít
 
Các bạn thông cảm. Mình chỉ có vốn kiến thức ít ỏi về hàm thôi.Còn VBA thì "tịt" hoàn toàn. Mong các bạn tận tình giúp đỡ.
 
Web KT

Bài viết mới nhất

Back
Top Bottom