Các phương pháp tách họ và tên đề nghị post ở đây

  • Thread starter Thread starter daerty5
  • Ngày gửi Ngày gửi
Liên hệ QC
Cảm ơn bạn

Cho mình hỏi thêm với

Mình muốn tách lấy từ bên trái ngay sau dấu cách đầu tiên của chuỗi thì làm thế nào

Ví dụ

Nguyen Van A --> Nguyen

12 345 678 --> 12

1. 234 567 --> 1.
 
Nhân việc bàn đến tách họ tên, em xin đưa ví dụ này lên đây nhờ mọi người giúp em viết 1 hàm tách đuôi mã hàng.
Câu hỏi cụ thể trong file đính kèm.
 
Nhân việc bàn đến tách họ tên, em xin đưa ví dụ này lên đây nhờ mọi người giúp em viết 1 hàm tách đuôi mã hàng.
Câu hỏi cụ thể trong file đính kèm.
Đúng cấu trúc như trong bài thì thử cái này xem nhé em trai
Mã:
Public Function Ma(Cll As Range) As String
    Ma = Left(Cll, InStrRev(Cll, "-") - 1)
End Function
Thân
 
Đúng cấu trúc như trong bài thì thử cái này xem nhé em trai
Mã:
Public Function Ma(Cll As Range) As String
    Ma = Left(Cll, InStrRev(Cll, "-") - 1)
End Function
Thân
Code này phải "bo" lại chút:
PHP:
Function Ma(ByVal Chuoi As String) As String
  On Error Resume Next
  Ma = Trim(Chuoi)
  Ma = Trim(Left(Chuoi, InStrRev(Chuoi, "-") - 1))
End Function
 
Hình như em này Ma = Trim(Chuoi) bị....dư hay sao í
Híc
Khi không tìm thấy dấu "-" thì code sẽ bị lỗi, khi ấy em thêm On Error Resume Next ở trên để "vượt" lỗi, đồng thời thêm Ma = Trim(Chuoi) để lấy nguyên chuổi
Tưc: không tìm thấy dấu "-" thì để nguyên chuổi
 
Dear all!

Đề tài này mình thấy các bạn đưa ra rất nhiều giải pháp để tách họ tên rất hay. Mình thì mình chỉ thích mấy cách dùng hàm LEFT và RIGHT.
Giả sử mình có chuỗi họ tên như sau:
Nguyễn Thị Minh Khai
Lê Văn Lương
Giải Phóng
mình muốn viết thành
KhaiTTM
LuongLV
PhongG
Trong excel có hàm nào giải quyết được việc này không nhỉ?
Các bạn có biết thì chia sẻ cho mình với nhé!

Cảm ơn các bạn!
 
Dear all!

Giả sử mình có chuỗi họ tên như sau:
Nguyễn Thị Minh Khai
Lê Văn Lương
Giải Phóng
mình muốn viết thành
KhaiTTM
LuongLV
PhongG

Thử cách này hơi dài dòng tí (củ chuối mà), mình làm công thức cho tên tối đa đến 5 từ (Vd: Lê Nguyễn Hoàng Văn Bách)
Nguyên tắc: tạo chuỗi mới bằng thay 1 " " bằng 100 " ". Rồi cắt khúc từng 100 ký tự trong chuỗi mới này để phân từng từ ra. Sau dùng TRIM để bỏ các ký tự " " vô nghĩa. File

Vd A7 chứa tên:

Đặt 2 name:

PHP:
newtext=SUBSTITUTE(TRIM(Sheet1!$A7)," ",REPT(" ",100))
nospace=LEN(TRIM(Sheet1!$A7))-LEN(SUBSTITUTE(TRIM(Sheet1!$A7)," ",""))

Công thức tại B7:

PHP:
=CONCATENATE(TRIM(RIGHT(newtext,100)),UPPER(LEFT(TRIM(A7),1)))&IF(Nospace=1,"",IF(Nospace=2,UPPER(LEFT(TRIM(MID(newtext,100,100)),1)),IF(Nospace=3,UPPER(LEFT(TRIM(MID(newtext,100,100)),1))&UPPER(LEFT(TRIM(MID(newtext,200,100)),1)),IF(Nospace=4,UPPER(LEFT(TRIM(MID(newtext,100,100)),1))&UPPER(LEFT(TRIM(MID(newtext,200,100)),1))&UPPER(LEFT(TRIM(MID(newtext,300,100)),1))))))

Chắc chắn có các cách khác ngắn gọn hơn nhiều, ... chờ để học hỏi
 

File đính kèm

Dear all!

Đề tài này mình thấy các bạn đưa ra rất nhiều giải pháp để tách họ tên rất hay. Mình thì mình chỉ thích mấy cách dùng hàm LEFT và RIGHT.
Giả sử mình có chuỗi họ tên như sau:
Nguyễn Thị Minh Khai
Lê Văn Lương
Giải Phóng
mình muốn viết thành
KhaiTTM
LuongLV
PhongG
Trong excel có hàm nào giải quyết được việc này không nhỉ?
Các bạn có biết thì chia sẻ cho mình với nhé!

Cảm ơn các bạn!
Cái này dùng hàm tự tạo đi
 

File đính kèm

Cách của bác phamduydn dài thật, nhưng mà bác viết được cả đoạn lệnh dài như thế cũng thật là pro đó.
Mình chưa thành thạo vba nên cách của bác Ba Tê mình chưa hiểu ngay được, sẽ ngẫm dần dần.

Thanks all!
 
Lần chỉnh sửa cuối:
em xin phép đc góp thêm một công thức cùi về tách họ tên(tách họ, tên đệm, tên) với điều kiện là tên của người cần tách chỉ gồm 3 từ thôi ạ
giả sử có tên ở ô A2
Thì công thức để tách phần "họ" trong tên đấy đủ là =LEFT(A2,FIND(" ",A2)-1)
" tên đệm" =MID(A2,FIND(" ",A2)+1,FIND(" ",A2,FIND(" ",A2)+1)-FIND(" ",A2))
" tên" =RIGHT(A2,LEN(A2)-FIND(" ",A2,FIND(" ",A2)+1))

các anh chị xem hộ em công thức xem dùng có vấn đề gì thì góp ý giúp cho em hiện tại em dùng thì ko vấn đề gì với tên gồm 3 từ và hàm này dùng với tên đc cách nhau bởi các khoảng trắng " ".công thức chủ yếu dựa vào " " và phân định tên tên đệm họ là mỗi 1 từ là 1 chữ.
 
Lần chỉnh sửa cuối:
Hàm lọc ra tên

A chị nào có thể giúp em hàm nào lọc ra tên. VD: Nguyễn văn an thì cho ra tên là an. Còn những tên khác cũng vậy.Em có kèm file nhờ a chị giúp! Thanks
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn xem đây có phải là ý của ban?
Xin mời xem file đính kèm.
 

File đính kèm

A chị nào có thể giúp em hàm nào lọc ra tên. VD: Nguyễn văn an thì cho ra tên là an. Còn những tên khác cũng vậy.Em có kèm file nhờ a chị giúp! Thanks

Dùng hàm đơn giản này nhé, tại ô B2 nhâp công thức này

=TRIM(RIGHT(SUBSTITUTE(A2," ",REPT(" ",10)),10))
 
Dùng hàm đơn giản này nhé, tại ô B2 nhâp công thức này

=TRIM(RIGHT(SUBSTITUTE(A2," ",REPT(" ",10)),10))
Nếu tên hoàn toàn là của người Việt thì số 10 là Ok ( có thể thay bằng 7 là được rồi)
Nếu có tên người nước ngoài vào danh sách ( hoặc danh sách là tên người nước ngoài ) thì số 10 chưa chắc thỏa, chắc cú phải thay số 10 bằng LEN(A20)
Thân
 
Thank các anh! Cho em hỏi thêm là nếu bây giờ minh muốn lọc Tên theo thứ tự chữ cái từ A->Z trong cột A thì có thể làm được không? E dùng cách data filter thi không sắp theo tên được mà nó sắp theo họ thui? A chị nào biết chỉ dùm em!
 
Lần chỉnh sửa cuối:
Thank các anh! Cho em hỏi thêm là nếu bây giờ minh muốn lọc Tên theo thứ tự chữ cái từ A->Z trong cột A thì có thể làm được không? E dùng cách data filter thi không sắp theo tên được mà nó sắp theo họ thui? A chị nào biết chỉ dùm em!
lọc một cột theo tên, dùng sort ascending hoặc sort descending để sắp xếp lại.
 
Web KT

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

Back
Top Bottom