Noname2023
Thành viên mới

- Tham gia
- 23/2/23
- Bài viết
- 5
- Được thích
- 2
Xin chào ACE trong diễn đàn! xin cho hỏi cách rút trích các ký số trong chuỗi sau, xin cám ơn!:
C12HD |
A123KHD |
S45F |
C12HD |
A123KHD |
S45F |
Chuỗi của bạn chỉ có các ký tự số liên tiếp hay có thể không liên tiếp?Xin chào ACE trong diễn đàn! xin cho hỏi cách rút trích các ký số trong chuỗi sau, xin cám ơn!:
C12HD A123KHD S45F
liên tiếp như mẫu đó ah. Trong vd này thì là 12, 123, 45Chuỗi của bạn chỉ có các ký tự số liên tiếp hay có thể không liên tiếp?
Để làm bài toán này, tôi đề xuất 2 bước với chuỗi gốc nằm ở ô A2:liên tiếp như mẫu đó ah. Trong vd này thì là 12, 123, 45
=AGGREGATE(15,6,FIND(ROW($A$1:$A$10)-1,A2),1)
=LOOKUP(10^10,--MID(A2,B2,ROW($A$1:$A$20)))
=LOOKUP(10^10,--MID(A2,AGGREGATE(15,6,FIND(ROW($A$1:$A$10)-1,A2),1),ROW($A$1:$A$20)))
. . . . . .Xin chào ACE trong diễn đàn! xin cho hỏi cách rút trích các ký số trong chuỗi sau, xin cám ơn!:
C12HD A123KHD S45F
=AGGREGATE(14,6,MID(A2,ROW($1:$255),TRANSPOSE(ROW($1:$255)))+0,1)
=MID(A2,MIN(FIND(ROW($1:$10)-1,A2&1/17)),COUNT(0+MID(A2,ROW($1:$255),1)))
Thử lại hộ nhé, tại mình đang gõ bằng điện thoại nên có thể sai sót.Chuỗi của bạn chỉ có các ký tự số liên tiếp hay có thể không liên tiếp?
Góp vui với hàm UDF (tác giả @NDU ). Đăng lên biết đâu có bạn nào cần dùngXin chào ACE trong diễn đàn! xin cho hỏi cách rút trích các ký số trong chuỗi sau, xin cám ơn!:
C12HD A123KHD S45F
Function ExtractChar(text As Variant, iType As String)
Dim Tmp 'As String
Tmp = Switch(iType = "L", "[^a-zA-Z]", iType = "N", "[^0-9]", iType = "S", "[0-9a-zA-Z]")
With CreateObject("VBScript.RegExp")
.Global = True: .Pattern = Tmp
ExtractChar = .Replace(text, "")
End With
End Function
Dùng cái hàm Switch này gọn he, thay thế cho mấy cái if hoặc select case. Chừ tôi mới biết đến hàm này đó.Mã:Function ExtractChar(text As Variant, iType As String) Dim Tmp 'As String Tmp = Switch(iType = "L", "[^a-zA-Z]", iType = "N", "[^0-9]", iType = "S", "[0-9a-zA-Z]") With CreateObject("VBScript.RegExp") .Global = True: .Pattern = Tmp ExtractChar = .Replace(text, "") End With End Function
Hàm này của anh Ndu viết lâu rồi, tôi nhớ và tìm may sao vẫn còn lưu được. Nhìn chung là tôi không hiểu gì cả nhưng thấy dùng cũng dễ và hữu dụng nên đăng lại lên biết đâu có ai cần dùng.Dùng cái hàm Switch này gọn he, thay thế cho mấy cái if hoặc select case. Chừ tôi mới biết đến hàm này đó.
Ý tôi là chỉ cái hàm Switch ấy mà. Thay vì:Hàm này của anh Ndu viết lâu rồi, tôi nhớ và tìm may sao vẫn còn lưu được. Nhìn chung là tôi không hiểu gì cả nhưng thấy dùng cũng dễ và hữu dụng nên đăng lại lên biết đâu có ai cần dùng.
If iType = "L" Then
Tmp = "[^a-zA-Z]"
elseIf iType = "N" Then
Tmp ="[^0-9]"
elseIf iType = "S" Then
Tmp ="[0-9a-zA-Z]"
End If