Cần tách họ tên không dấu, số tài khoản, số cmnd...

Liên hệ QC

giang127

Thành viên hoạt động
Tham gia
24/12/07
Bài viết
136
Được thích
8
Gửi các bác, em có list các giao dịch qua tài khoản ngân hàng, muốn cần tách riêng họ tên không dấu, số tài khoản, mã số giao dịch, số cmnd.... trong ô thành các ô riêng rẽ. Vì nội dung các gd là khác nhau, mong các bác giúp ạ
 

File đính kèm

  • Tach so - ky tu.xlsx
    10.3 KB · Đọc: 30
Gửi các bác, em có list các giao dịch qua tài khoản ngân hàng, muốn cần tách riêng họ tên không dấu, số tài khoản, mã số giao dịch, số cmnd.... trong ô thành các ô riêng rẽ. Vì nội dung các gd là khác nhau, mong các bác giúp ạ
Chuỗi có 2 tên thì lấy tên nào?
"REM Tfr Ac: 51010001785121 NGUYEN THI HA Luu Thanh Quang 187845192 KTTD DHBK"
 
"REM Tfr Ac: 51010001785121 NGUYEN THI HA Luu Thanh Quang 187845192 KTTD DHBK"
"REM Tfr Ac: 45010006045504 MAI THI XUAN Chuyen tien Hoang Duc Chien 064202000040 KTTD DHBK"
Cái này tách 2 tên bằng niềm tin hả
Thì sẽ thành 1 tên Nguyen thi ha Luu thanh quang ; con cái kia la mai thi xuan và hoang duc chien dc ko bác :(((
 
Thì sẽ thành 1 tên Nguyen thi ha Luu thanh quang ; con cái kia la mai thi xuan và hoang duc chien dc ko bác :(((
Mã giao dịch của 2 dòng này

REM Tfr Ac: 51010001785121 NGUYEN THI HA Luu Thanh Quang 187845192 KTTD DHBK
REM Tfr Ac: 31510001179086 O@L_015005_211601_0_0_208518462_200710000119819 Nguyen Hoang Nam 125993488 KTTD DHBK ZP5MHDO4958G
là gì vậy bạn?
Bạn giải thích thông tin của chuỗi đi
 
Thì sẽ thành 1 tên Nguyen thi ha Luu thanh quang ; con cái kia la mai thi xuan và hoang duc chien dc ko bác :(((
Ít nhất thì cái kết quả mong muốn được là gì thì phải ghi luôn ra chứ mọi người có phải bạn đâu mà biết đâu là mã GD đâu là số TK đâu là số cmnd. Bài này không có quy tắc chung hơi khoai
 
Em cần check xem trong ds user trên hệ thống, xem ai đã đóng tiền rồi bác ợ

Còn những ai chưa đóng tiền thì list ra 1 danh sách riêng gồm tên, cmnd

Ngoài ra, có 1 số người chuyển tiền thì ko có tên hay cmnd
 

File đính kèm

  • Tach so - ky tu 2.xlsx
    11.3 KB · Đọc: 7
Coi bộ được mỗi cái số tài khoản là "có chút quy tắc", nên góp vui trước:
Mã:
D3=TRIM(SUBSTITUTE(MID(A3,SEARCH(":",A3)+1,SEARCH(" ",A3,SEARCH(":",A3)+4)-(SEARCH(":",A3)+1)),",",""))
Mấy cái kia nhìn chưa ra =))
 
Em cần check xem trong ds user trên hệ thống, xem ai đã đóng tiền rồi bác ợ

Còn những ai chưa đóng tiền thì list ra 1 danh sách riêng gồm tên, cmnd

Ngoài ra, có 1 số người chuyển tiền thì ko có tên hay cmnd
Ý mình là 4 cái cột trong ảnh này bạn muốn điền j thì gõ tay hẳn vào thì mới biết bạn muốn cái gì chứ ai biết chuỗi số 1 2 3 của bạn là tương ứng với cnnd hay TK hay mã giao dịch, bạn làm bạn biết chứ người khác biết số gì với số gì
1594786188303.png
 
Ý mình là 4 cái cột trong ảnh này bạn muốn điền j thì gõ tay hẳn vào thì mới biết bạn muốn cái gì chứ ai biết chuỗi số 1 2 3 của bạn là tương ứng với cnnd hay TK hay mã giao dịch, bạn làm bạn biết chứ người khác biết số gì với số gì
View attachment 241155

Đây bác ơi
Bài đã được tự động gộp:

Có 1 quy tắc là số CMND đứng trước cụm từ "KTTD DHBK" bác ơi. Còn lại thì có những ng quên ghi thì check thủ công vậy!

VD: Doan Bao Trung 036202006344 KTTD DHBK thì 036202006344 là số CMND
 

File đính kèm

  • Tach so - ky tu 2.xlsx
    12.8 KB · Đọc: 3
Lần chỉnh sửa cuối:
Cả 2 bác ạ. Tối đa có 2 tên thôi, chắc mẹ đóng tiền cho con O_O
Dùng tạm code dưới đây.
Mã giao dịch không có mẫu nên chưa xử lý
Mã:
Option Explicit
Sub Ten_Taikhoan_CMND()
Dim Nguon
Dim tam
Dim kq() As String
Dim rws, i, j, k, x, y, z
With Sheet1
    Nguon = .Range("A3", .Range("A3").End(xlDown))
    rws = UBound(Nguon)
End With
With CreateObject("VbScript.RegExp")
    .Global = True
    .Pattern = "(([A-Za-z]+\s)+)(\d{9,11})"
    ReDim kq(1 To rws, 1 To 3)
    For i = 1 To rws
        k = InStr(Nguon(i, 1), "KTTD")
        If k Then
            j = InStr(Nguon(i, 1), ":")
            tam = Trim(Mid(Nguon(i, 1), j + 1, k - j))
            If .test(tam) Then
                kq(i, 1) = .Execute(tam)(0).submatches(0)
                kq(i, 3) = .Execute(tam)(0).submatches(2)
                j = InStr(tam, " ")
                kq(i, 2) = Left(tam, j - 1)
                If Right(kq(i, 2), 1) = "," Then kq(i, 2) = Left(kq(i, 2), Len(kq(i, 2)) - 1)
            End If
        End If
    Next i
End With
With Sheet1
    .Range("C3").Resize(UBound(kq), UBound(kq, 2)).ClearContents
    .Range("C3").Resize(UBound(kq), UBound(kq, 2)) = kq
End With
End Sub
 
Dùng tạm code dưới đây.
Mã giao dịch không có mẫu nên chưa xử lý
Mã:
Option Explicit
Sub Ten_Taikhoan_CMND()
Dim Nguon
Dim tam
Dim kq() As String
Dim rws, i, j, k, x, y, z
With Sheet1
    Nguon = .Range("A3", .Range("A3").End(xlDown))
    rws = UBound(Nguon)
End With
With CreateObject("VbScript.RegExp")
    .Global = True
    .Pattern = "(([A-Za-z]+\s)+)(\d{9,11})"
    ReDim kq(1 To rws, 1 To 3)
    For i = 1 To rws
        k = InStr(Nguon(i, 1), "KTTD")
        If k Then
            j = InStr(Nguon(i, 1), ":")
            tam = Trim(Mid(Nguon(i, 1), j + 1, k - j))
            If .test(tam) Then
                kq(i, 1) = .Execute(tam)(0).submatches(0)
                kq(i, 3) = .Execute(tam)(0).submatches(2)
                j = InStr(tam, " ")
                kq(i, 2) = Left(tam, j - 1)
                If Right(kq(i, 2), 1) = "," Then kq(i, 2) = Left(kq(i, 2), Len(kq(i, 2)) - 1)
            End If
        End If
    Next i
End With
With Sheet1
    .Range("C3").Resize(UBound(kq), UBound(kq, 2)).ClearContents
    .Range("C3").Resize(UBound(kq), UBound(kq, 2)) = kq
End With
End Sub
Hjx, bác chèn vào file giúp e được ko? E ko biết sử dụng cái này :(
Bài đã được tự động gộp:

Dùng tạm code dưới đây.
Mã giao dịch không có mẫu nên chưa xử lý
Mã:
Option Explicit
Sub Ten_Taikhoan_CMND()
Dim Nguon
Dim tam
Dim kq() As String
Dim rws, i, j, k, x, y, z
With Sheet1
    Nguon = .Range("A3", .Range("A3").End(xlDown))
    rws = UBound(Nguon)
End With
With CreateObject("VbScript.RegExp")
    .Global = True
    .Pattern = "(([A-Za-z]+\s)+)(\d{9,11})"
    ReDim kq(1 To rws, 1 To 3)
    For i = 1 To rws
        k = InStr(Nguon(i, 1), "KTTD")
        If k Then
            j = InStr(Nguon(i, 1), ":")
            tam = Trim(Mid(Nguon(i, 1), j + 1, k - j))
            If .test(tam) Then
                kq(i, 1) = .Execute(tam)(0).submatches(0)
                kq(i, 3) = .Execute(tam)(0).submatches(2)
                j = InStr(tam, " ")
                kq(i, 2) = Left(tam, j - 1)
                If Right(kq(i, 2), 1) = "," Then kq(i, 2) = Left(kq(i, 2), Len(kq(i, 2)) - 1)
            End If
        End If
    Next i
End With
With Sheet1
    .Range("C3").Resize(UBound(kq), UBound(kq, 2)).ClearContents
    .Range("C3").Resize(UBound(kq), UBound(kq, 2)) = kq
End With
End Sub
Em chèn công thức vào nhưng click ko lọc gì được. Hay em chèn sai?
 

File đính kèm

  • Tach so - ky tu 2.xlsx
    139.4 KB · Đọc: 4
Lần chỉnh sửa cuối:

File đính kèm

  • Tach so - ky tu.xlsb
    23.6 KB · Đọc: 10
Có mấy chỗ không theo quy tắc chẳng biết tách kiểu gì
 

File đính kèm

  • Tach so - ky tu.xlsx
    15.3 KB · Đọc: 3
Web KT
Back
Top Bottom