Nhờ tách các SDT 10 số ra khỏi chuỗi

Liên hệ QC

trienhove

Thành viên mới
Tham gia
7/12/20
Bài viết
9
Được thích
0
Nhờ anh chị em tách giùm với ạ.

1607317275343.png
 

File đính kèm

  • Book1.xlsx
    10.3 KB · Đọc: 14
Xem Thử làm này
Mã:
Function ReGexChuoi(aChuoi As String, regexPattern As String) As String
    Dim regExs As Object, Matches As Object, aKetQua As Variant, i As Long
    Set regExs = CreateObject("vbscript.regexp")
    With regExs
        .Global = True
        .MultiLine = True
        .IgnoreCase = False
        .Pattern = regexPattern
    End With
    If regExs.Test(aChuoi) Then
        Set Matches = regExs.Execute(aChuoi)
        ReDim aKetQua(0 To Matches.Count)
        For i = 0 To Matches.Count - 1
            aKetQua(i) = Matches.Item(i)
        Next i
        ReGexChuoi = Join(aKetQua, " ")
    Else
        ReGexChuoi = "Không co k" & ChrW(7871) & "t qu" & ChrW(7843)
    End If
End Function
 

File đính kèm

  • RegexChuoi_1.xlsm
    17.9 KB · Đọc: 9
Dạ ko ạ. Mình ko có cái này
Hoặc thử UDF này (cũng tương tự bạn Vân)
Mã:
Option Explicit

Function TachSDT(Text As String) As String
Static Re As Object, Ptn As String
Dim KQ, b As Object
Ptn = "(0{1}\d{9})(?=\D)"
If Re Is Nothing Then Set Re = CreateObject("VBScript.Regexp")
With Re
    .Global = True
    .Pattern = Ptn
    If .test(Text) Then
        Set KQ = .Execute(Text)
        For Each b In KQ
            TachSDT = IIf(TachSDT = "", b, TachSDT & ";" & b)
        Next
    End If
End With
End Function
 

File đính kèm

  • Book1 (27).xlsm
    16.7 KB · Đọc: 7
Hoặc thử UDF này (cũng tương tự bạn Vân)
Mã:
Option Explicit

Function TachSDT(Text As String) As String
Static Re As Object, Ptn As String
Dim KQ, b As Object
Ptn = "(0{1}\d{9})(?=\D)"
If Re Is Nothing Then Set Re = CreateObject("VBScript.Regexp")
With Re
    .Global = True
    .Pattern = Ptn
    If .test(Text) Then
        Set KQ = .Execute(Text)
        For Each b In KQ
            TachSDT = IIf(TachSDT = "", b, TachSDT & ";" & b)
        Next
    End If
End With
End Function
Cảm ơn bạn. mình làm được rồi
Bài đã được tự động gộp:

Xem Thử làm này
Mã:
Function ReGexChuoi(aChuoi As String, regexPattern As String) As String
    Dim regExs As Object, Matches As Object, aKetQua As Variant, i As Long
    Set regExs = CreateObject("vbscript.regexp")
    With regExs
        .Global = True
        .MultiLine = True
        .IgnoreCase = False
        .Pattern = regexPattern
    End With
    If regExs.Test(aChuoi) Then
        Set Matches = regExs.Execute(aChuoi)
        ReDim aKetQua(0 To Matches.Count)
        For i = 0 To Matches.Count - 1
            aKetQua(i) = Matches.Item(i)
        Next i
        ReGexChuoi = Join(aKetQua, " ")
    Else
        ReGexChuoi = "Không co k" & ChrW(7871) & "t qu" & ChrW(7843)
    End If
End Function
cảm ơn bạn. đã xong ạ
 
2 tên khác nhau, hai câu hỏi khác nhau. Nhưng dữ liệu in hệt:
1 mình 2 tài khoản, thấy bên kia hỏi rắc rối mà ko biết xóa cái nào nên lập ra cái này.
Bài đã được tự động gộp:

1 mình 2 tài khoản, thấy bên kia hỏi rắc rối mà ko biết xóa cái nào nên lập ra cái này
2 tên khác nhau, hai câu hỏi khác nhau. Nhưng dữ liệu in hệt:
.
2 tên khác nhau, hai câu hỏi khác nhau. Nhưng dữ liệu in hệt:
1 mình 2 tài khoản, thấy bên kia hỏi rắc rối mà ko biết xóa cái nào nên lập ra cái này. hi
 
1 mình 2 tài khoản, thấy bên kia hỏi rắc rối mà ko biết xóa cái nào nên lập ra cái này.
Bài đã được tự động gộp:

1 mình 2 tài khoản, thấy bên kia hỏi rắc rối mà ko biết xóa cái nào nên lập ra cái này

.

1 mình 2 tài khoản, thấy bên kia hỏi rắc rối mà ko biết xóa cái nào nên lập ra cái này. hi
Mà không biết trước đây bạn đã hỏi bài này chưa, mình nhớ khá lâu rồi, mình có giúp một bài nhìn gần giống như thế này. Có 2 ý mà mình chỉ giúp được một ý, còn một ý nữa là những số không phải sđt thì xóa bỏ đi mình chưa làm được
 
Công thức tại C2:
Mã:
=IFERROR(MID(SUBSTITUTE($A2&"|"," ",""),AGGREGATE(15,6,ROW(INDIRECT("1:"&LEN($A2)-10))/(ISNUMBER(MID(SUBSTITUTE($A2&"|"," ",""),ROW(INDIRECT("1:"&LEN($A2)-10)),10)+0)),COLUMN(A:A)),10),"")

Copy sang phải và xuống dưới.
 

File đính kèm

  • Book1 (1).xlsx
    11.3 KB · Đọc: 8
Nhờ anh chị em tách giùm với ạ.
Hàm TEXTJOIN
Mã:
=TEXTJOIN(";",1,TEXT(IFERROR(1/(1/MID("#"&SUBSTITUTE($A2," ","#")&"#",AGGREGATE(15,6,ROW($1:$500)/(MMULT(--ISNUMBER(--MID("#"&$A2&"#",(COLUMN($A$1:$L$1)-1)+ROW(INDIRECT("1:"&2+LEN($A2))),1)),ROW($1:$12)^0)=10)+1,ROW(INDIRECT("1:"&2+LEN($A2)))),10)),""),REPT("0",10)))
Nếu không có hàm TEXTJOIN thì tách thành nhiều cột rồi nối lại
Mã:
=IFERROR("0"&AGGREGATE(15,6,MID("#"&SUBSTITUTE($A2," ","#")&"#",AGGREGATE(15,6,ROW($1:$500)/(MMULT(--ISNUMBER(--MID("#"&$A2&"#",(COLUMN($A$1:$L$1)-1)+ROW(INDIRECT("1:"&2+LEN($A2))),1)),ROW($1:$12)^0)=10)+1,ROW(INDIRECT("1:"&2+LEN($A2)))),10)+0,COLUMN(A1)),"")
1607401554283.png
 
Web KT
Back
Top Bottom