Xử lý chuỗi Họ tên

Liên hệ QC

vulhu06

Thành viên mới
Tham gia
3/11/09
Bài viết
35
Được thích
7
Xin chào ACE trong diễn đàn, mình có thắc mắc muốn hỏi mọi người như sau (tạm thời đặt tiêu đề như vậy)
Giả sử có cột Họ tên:
1. Lương Thị BíchHằng
2. Trần TháiHoàng
3. Ngyễn MinhMẫn
Không hiểu lý do gì mà tên họ và tên lại không có khoảng cách. Bây giờ có cách nào chèn khoảng cách cho họ tên không ah. Dữ liệu khá nhiều, nhập thủ công thì cực quá
Xin cám ơn mọi người đã đọc
 
Xin chào ACE trong diễn đàn, mình có thắc mắc muốn hỏi mọi người như sau (tạm thời đặt tiêu đề như vậy)
Giả sử có cột Họ tên:
1. Lương Thị BíchHằng
2. Trần TháiHoàng
3. Ngyễn MinhMẫn
Không hiểu lý do gì mà tên họ và tên lại không có khoảng cách. Bây giờ có cách nào chèn khoảng cách cho họ tên không ah. Dữ liệu khá nhiều, nhập thủ công thì cực quá
Xin cám ơn mọi người đã đọc
Nếu Họ Tên và Đệm có quy luật là:
Chữ cái đầu tiên -> viết hoa, phần còn lại không viết hoa thì có thể dùng VBA để chèn được, nhưng nên gửi bài trong box lập trình.
 
Cách thì có, siêu tốc luôn (không cần VBA, không công thức) nhưng sáng sớm đã có người đòi "Anh Chích Em".. nên sợ chạy mất dép.
 
Flash Fill không được đâu, vì họ tên không có qui luật nào cả, dài ngắn khác nhau. Tôi cũng đã thử với Flash Fill và Text to column rồi nhưng không được
Tôi thấy Flash Fill là sử dụng bình thường. Nếu không dùng Flash Fill được thì thử hàm sau:
Nếu B2 chứa dữ liệu thì sử dụng =KhoangTrang($B2)
Mã:
Function KhoangTrang(Vùng_Càn_Tao As String) As String
With CreateObject("VBScript.RegExp")
    .Pattern = "([A-Z])"
    .Global = True
    KhoangTrang = .Replace(Vùng_Càn_Tao, " " & "$1")
End With
KhoangTrang = Application.WorksheetFunction.Trim(KhoangTrang)
End Function
 
Tôi thấy Flash Fill là sử dụng bình thường. Nếu không dùng Flash Fill được thì thử hàm sau:
Nếu B2 chứa dữ liệu thì sử dụng =KhoangTrang($B2)
Mã:
Function KhoangTrang(Vùng_Càn_Tao As String) As String
With CreateObject("VBScript.RegExp")
    .Pattern = "([A-Z])"
    .Global = True
    KhoangTrang = .Replace(Vùng_Càn_Tao, " " & "$1")
End With
KhoangTrang = Application.WorksheetFunction.Trim(KhoangTrang)
End Function
Cái pattern trên không đáp ứng được cho tên tiếng Việt.
Đề nghị tạm: tạo một name với mớ mẫu tự hoa tiếng Việt.
 
Xin chào ACE trong diễn đàn, mình có thắc mắc muốn hỏi mọi người như sau (tạm thời đặt tiêu đề như vậy)
Giả sử có cột Họ tên:
1. Lương Thị BíchHằng
2. Trần TháiHoàng
3. Ngyễn MinhMẫn
Không hiểu lý do gì mà tên họ và tên lại không có khoảng cách. Bây giờ có cách nào chèn khoảng cách cho họ tên không ah. Dữ liệu khá nhiều, nhập thủ công thì cực quá
Xin cám ơn mọi người đã đọc
Nếu bạn bảo đảm: Họ, tên đệm, tên đều bắt đầu bằng chữ in hoa, và chỉ bị: "Tên" ghép vào tên đệm cuối gần nhất, dùng thử công thức: Giả sử cột A (A1: An) chứa dữ liệu như bạn ví dụ ở bài #1, thử:
Mã:
B1=TRIM(REPLACE(A1,LOOKUP(2,1/(1-EXACT(LOWER(MID(A1,ROW($1:$100),1)),MID(A1,ROW($1:$100),1))),ROW($1:$100)),," "))
Enter, fill xuống.

Thân
 

File đính kèm

  • CatTen.xlsx
    8.6 KB · Đọc: 8
Nếu bạn bảo đảm: Họ, tên đệm, tên đều bắt đầu bằng chữ in hoa, và chỉ bị: "Tên" ghép vào tên đệm cuối gần nhất, dùng thử công thức: Giả sử cột A (A1: An) chứa dữ liệu như bạn ví dụ ở bài #1, thử:
Mã:
B1=TRIM(REPLACE(A1,LOOKUP(2,1/(1-EXACT(LOWER(MID(A1,ROW($1:$100),1)),MID(A1,ROW($1:$100),1))),ROW($1:$100)),," "))
Enter, fill xuống.

Thân
Xin cám ơn sự giúp đỡ nhiệt tình. Mình đã làm được
Bài đã được tự động gộp:

Cái pattern trên không đáp ứng được cho tên tiếng Việt.
Đề nghị tạm: tạo một name với mớ mẫu tự hoa tiếng Việt.
Xin cám ơn sự giúp đỡ nhiệt tình
Bài đã được tự động gộp:

Tôi thấy Flash Fill là sử dụng bình thường. Nếu không dùng Flash Fill được thì thử hàm sau:
Nếu B2 chứa dữ liệu thì sử dụng =KhoangTrang($B2)
Mã:
Function KhoangTrang(Vùng_Càn_Tao As String) As String
With CreateObject("VBScript.RegExp")
    .Pattern = "([A-Z])"
    .Global = True
    KhoangTrang = .Replace(Vùng_Càn_Tao, " " & "$1")
End With
KhoangTrang = Application.WorksheetFunction.Trim(KhoangTrang)
End Function
Xin cám ơn sự giúp đỡ nhiệt tình
 
Web KT

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

Back
Top Bottom