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
lọc một cột theo tên, dùng sort ascending hoặc sort descending để sắp xếp lại.

Cái đó nó chỉ lọc được chữ cái đầu thui. Ý mình là VD: trong một cột có: Nguyễn văn a, phan văn d, trần văn c. Thì làm cách nào để cho những tên đó sắp xếp theo thứ tự Tên chữ cái chứ không phải sắp theo Họ!
 
Cái đó nó chỉ lọc được chữ cái đầu thui. Ý mình là VD: trong một cột có: Nguyễn văn a, phan văn d, trần văn c. Thì làm cách nào để cho những tên đó sắp xếp theo thứ tự Tên chữ cái chứ không phải sắp theo Họ!
1 là bạn tách thêm 1 cột Họ Lót, 1 cột Tên, Rồi Sort theo thừ tự Tên - Họ Lót.
2 là bạn tham khảo các bài viết về Sort tiếng Việt trên GPE, đây là 1 Topic có liên quan nè:
http://www.giaiphapexcel.com/forum/showthread.php?3750-Sắp-xếp-tên-tự-động-từ-A-Z&p=25891#post25891
 
Cái đó nó chỉ lọc được chữ cái đầu thui. Ý mình là VD: trong một cột có: Nguyễn văn a, phan văn d, trần văn c. Thì làm cách nào để cho những tên đó sắp xếp theo thứ tự Tên chữ cái chứ không phải sắp theo Họ!

lọc tên ra một cột msororso sort lại cột tên là được chứ.
 
Tách Họ Và Tên Thành Họ Tên

Anh chị giúp dùm em, em có 1 danh sách với họ và tên tách dùm em chỉ lấy họ tên vào 1 cột khác.
VD: Nguyễn Thị Thanh Như tách ra thành Nguyễn Như thôi.
 

File đính kèm

Anh chị giúp dùm em, em có 1 danh sách với họ và tên tách dùm em chỉ lấy họ tên vào 1 cột khác.
VD: Nguyễn Thị Thanh Như tách ra thành Nguyễn Như thôi.
Tách riêng họ:
Mã:
=LEFT(B6,FIND(" ",B6))
Tách riêng tên:
Mã:
=TRIM(RIGHT(SUBSTITUTE(B6," ",REPT(" ",255)),LEN(B6)))
=> Tách họ tên:
Mã:
=LEFT(B6,FIND(" ",B6))&TRIM(RIGHT(SUBSTITUTE(B6," ",REPT(" ",255)),LEN(B6)))
Điều kiện là họ và tên phải từ 2 âm tiết trở lên (có ít nhất 1 khoảng trắng giữa).
 
Bạn dùng cái này nhé:
Mã:
=TRIM(LEFT(SUBSTITUTE(B6," ",REPT(" ",255)),255))&" "&TRIM(RIGHT(SUBSTITUTE(B6," ",REPT(" ",255)),255))
Copy xuống cho các dòng khác
 
Tách riêng họ:
Mã:
=LEFT(B6,FIND(" ",B6))
Tách riêng tên:
Mã:
=TRIM(RIGHT(SUBSTITUTE(B6," ",REPT(" ",255)),LEN(B6)))
=> Tách họ tên:
Mã:
=LEFT(B6,FIND(" ",B6))&TRIM(RIGHT(SUBSTITUTE(B6," ",REPT(" ",255)),LEN(B6)))
Điều kiện là họ và tên phải từ 2 âm tiết trở lên (có ít nhất 1 khoảng trắng giữa).

Cảm ơn anh và chị xuan.nguyen82 nhiều.
 
Lần chỉnh sửa cuối:
Cho tôi hỏi. Nếu có những sinh viên TÊN khai sinh là: Hà Anh và sinh viên tên là: Phương Anh còn HỌ ĐÊM là Đào Nguyễn Thị và cuối cùng tên ghi đầy đủ là:
Đào Nguyễn Thị Hà Anh hoặc Đào Nguyễn Thị Phương Anh

Ở đây ý nói không phải lúc nào tên cũng 1 "từ đơn" mà hiện tượng bây giờ rất nhiều gia đình đặt tên con là "từ ghép". Liệu có dùng hàm nào để tách không để các cháu không bị gọi nhầm và mất tên khi làm các thủ tục kê khai giấy tờ. Vì xưa nay đến giờ tên thường là danh "từ đơn" nếu tách như các hàm trên vô tình đã làm cho 2 đữa con trong 1 gia đình bị cùng tên đều là "ANH". Đây mới là vấn đề cần giải quyết.
 
Cho tôi hỏi. Nếu có những sinh viên TÊN khai sinh là: Hà Anh và sinh viên tên là: Phương Anh còn HỌ ĐÊM là Đào Nguyễn Thị và cuối cùng tên ghi đầy đủ là:
Đào Nguyễn Thị Hà Anh hoặc Đào Nguyễn Thị Phương Anh

Ở đây ý nói không phải lúc nào tên cũng 1 "từ đơn" mà hiện tượng bây giờ rất nhiều gia đình đặt tên con là "từ ghép". Liệu có dùng hàm nào để tách không để các cháu không bị gọi nhầm và mất tên khi làm các thủ tục kê khai giấy tờ. Vì xưa nay đến giờ tên thường là danh "từ đơn" nếu tách như các hàm trên vô tình đã làm cho 2 đữa con trong 1 gia đình bị cùng tên đều là "ANH". Đây mới là vấn đề cần giải quyết.
Thực tế phong phú hơn những ví dụ mà các anh chị đưa lên đây nhiều bạn ạ, tùy trường hợp mà ứng dụng cho minh hoạt thôi. Ví dụ một nhà có 2 con tên thế này : Bùi Thị Kim Chi Ngọc Diệp và Bùi Thị Kim Thanh Ngọc Diệp thì lại phải tách đến 4 từ cuối để khỏi nhầm . Bây giờ các phụ huynh đặt tên con mỹ miều lắm. Rất khó để lường hết các tình huống trong thực tế, tùy tình huống để xử lý sao cho phù hợp với cái mình cần bạn ạ không phải làm một cách máy móc!!!
 
Lần chỉnh sửa cuối:
Cho tôi hỏi. Nếu có những sinh viên TÊN khai sinh là: Hà Anh và sinh viên tên là: Phương Anh còn HỌ ĐÊM là Đào Nguyễn Thị và cuối cùng tên ghi đầy đủ là:
Đào Nguyễn Thị Hà Anh hoặc Đào Nguyễn Thị Phương Anh

Ở đây ý nói không phải lúc nào tên cũng 1 "từ đơn" mà hiện tượng bây giờ rất nhiều gia đình đặt tên con là "từ ghép". Liệu có dùng hàm nào để tách không để các cháu không bị gọi nhầm và mất tên khi làm các thủ tục kê khai giấy tờ. Vì xưa nay đến giờ tên thường là danh "từ đơn" nếu tách như các hàm trên vô tình đã làm cho 2 đữa con trong 1 gia đình bị cùng tên đều là "ANH". Đây mới là vấn đề cần giải quyết.

Nếu vậy bạn đặt cho 1 cái tên là có 1 mã số, thế là hết nhằm liền.
VD: Đào Nguyễn Thị Hà Anh 000000001
Đào Nguyễn Thị Phương Anh 000000002
 
Thực tế phong phú hơn những ví dụ mà các anh chị đưa lên đây nhiều bạn ạ, tùy trường hợp mà ứng dụng cho minh hoạt thôi. Ví dụ một nhà có 2 con tên thế này : Bùi Thị Kim Chi Ngọc Diệp và Bùi Thị Kim Thanh Ngọc Diệp thì lại phải tách đến 4 từ cuối để khỏi nhầm . Bây giờ các phụ huynh đặt tên con mỹ miều lắm. Rất khó để lường hết các tình huống trong thực tế, tùy tình huống để xử lý sao cho phù hợp với cái mình cần bạn ạ không phải làm một cách máy móc!!!
Cũng may là còn có.. số CMND, Mã SV, Mã CN... vân vân.. nói chung là các ID để nhân biết người này khác với người kia. Còn cái tên, cùng lắm chỉ để gọi và nó chẳng có ý nghĩa gì đối với CSDL cả vì cũng chẳng ai dại dột đi lấy tên làm khóa chính để tra cứu thông tin
 
trên thực tế thường thì mọi người thường chỉ tách tên ra 1 cột, họ + tên lót ra 1 cột để tiện sắp xếp.
trong đó khó nhất là tách tên riêng, còn họ + tên lót thì đơn giản.
Cách của mình khá đơn giản, và chỉ áp dụng cho người việt với chữ nhiều ký tự nhất là "nghiêng" 7 ký tự. vì thế mình sẽ thêm vào các khoảng trắng 7 khoảng trắng trở lên, rồi cắt từ bên phải ra 8 ký tự.
hàm của mình là
ten
=TRIM(RIGHT(SUBSTITUTE(A1," "," "),8))
nếu ai cẩn thận muốn ký tự đầu tiên viết hoa, và phòng ngừa khi nhập họ tên ở ô A1 thừa khoảng trắng ở đằng sau tên thì sử dụng hàm sau
tên =TRIM(RIGHT(SUBSTITUTE(PROPER(TRIM(A1))," "," "),8)).
 
Tách họ riêng còn tên lót và tên chung!

Mình muốn nhờ các bạn giúp mình tí!
Mình kiếm trên diễn đàn thì có bạn ghi công thức tách Họ và tên lót đi chung, còn tên đi riêng.
Ví dụ: Nguyễn Văn Nhân thì tách ra thành "Nguyễn Văn" và "Nhân"
(Tại hàng A9)
Lấy họ và tên lót:=LEFT(A9;FIND("*";SUBSTITUTE(A9;" ";"*";LEN(A9)-LEN(SUBSTITUTE(A9;" ";""))))-1)
Lấy tên: =RIGHT(A9;LEN(A9)-FIND("*";SUBSTITUTE(A9;" ";"*";LEN(A9)-LEN(SUBSTITUTE(A9;" ";"")))))

Mình muốn các bạn sửa lại giùm mình thành Họ đi riêng; Tên lót và tên thật đi chung. Ví dụ tên: Nguyễn Văn Nhân mà mình muốn tách ra "Nguyễn" và "Văn Nhân" thì làm thế nào?
 

File đính kèm

Tách Họ+Lót với Tên mới khó, chứ tách Họ, Lót+Tên thì dễ hơn:
=LEFT(A4, FIND(" ", A4)-1)

=RIGHT(A4, LEN(A4)-FIND(" ", A4))
 
Mình muốn nhờ các bạn giúp mình tí!
Mình kiếm trên diễn đàn thì có bạn ghi công thức tách Họ và tên lót đi chung, còn tên đi riêng.
Ví dụ: Nguyễn Văn Nhân thì tách ra thành "Nguyễn Văn" và "Nhân"
(Tại hàng A9)
Lấy họ và tên lót:=LEFT(A9;FIND("*";SUBSTITUTE(A9;" ";"*";LEN(A9)-LEN(SUBSTITUTE(A9;" ";""))))-1)
Lấy tên: =RIGHT(A9;LEN(A9)-FIND("*";SUBSTITUTE(A9;" ";"*";LEN(A9)-LEN(SUBSTITUTE(A9;" ";"")))))

Mình muốn các bạn sửa lại giùm mình thành Họ đi riêng; Tên lót và tên thật đi chung. Ví dụ tên: Nguyễn Văn Nhân mà mình muốn tách ra "Nguyễn" và "Văn Nhân" thì làm thế nào?
Bạn xem bài này có giúp ích gì cho bạn không?
http://www.giaiphapexcel.com/forum/showthread.php?69676-Chọn-họ-tên-theo-cột&p=428320#post428320
 
Vì không thạo về VBA và cũng không thạo về hàm nên tôi dùng phương pháp "Đông - Tây Y" kết hợp như sau:

Bước 1: Copy toàn bộ cột A (cột họ tên) sang cột B

Bước 2: Tách họ bằng cách Replace dấu cách* thành không có gì (nhấn Ctrl + H trong Find what nhập dấu cách*; trong Replace with bỏ trống; nhấn Replace All)

Bước 3: Tách tên đệm và tên. Tại C4 nhập =TRIM(SUBSTITUTE(A4;B4;;1)) rồi Fill xuống

Bạn làm thử xem, đơn giản như đan giổ.
 
Cảm ơn mọi người nhé, mình làm được rồi. Với các bạn thì dễ thật chứ mình kém lắm nên làm mãi chẳng ra! ^_^
 
Vì không thạo về VBA và cũng không thạo về hàm nên tôi dùng phương pháp "Đông - Tây Y" kết hợp như sau:

Bước 1: Copy toàn bộ cột A (cột họ tên) sang cột B

Bước 2: Tách họ bằng cách Replace dấu cách* thành không có gì (nhấn Ctrl + H trong Find what nhập dấu cách*; trong Replace with bỏ trống; nhấn Replace All)

Bước 3: Tách tên đệm và tên. Tại C4 nhập =TRIM(SUBSTITUTE(A4;B4;;1)) rồi Fill xuống

Bạn làm thử xem, đơn giản như đan giổ.

Món này độc thiệt. Mặc dù mình không áp dụng cho công việc nhưng phải công nhận quá hay!
Chiêu này sửa lại là * với dấu cách thì tách tên cần gì công thức nữa!!!

Và cũng từ chiêu này viết ra cái sub tách tên thiệt là gọn

PHP:
Sub tach_ten()
   [a:a].Copy [b:b]
   [b:b].Replace "* ", ""
End Sub
 
Lần chỉnh sửa cuối:
Mình muốn nhờ các bạn giúp mình tí!
Mình kiếm trên diễn đàn thì có bạn ghi công thức tách Họ và tên lót đi chung, còn tên đi riêng.
Ví dụ: Nguyễn Văn Nhân thì tách ra thành "Nguyễn Văn" và "Nhân"
(Tại hàng A9)
Lấy họ và tên lót:=LEFT(A9;FIND("*";SUBSTITUTE(A9;" ";"*";LEN(A9)-LEN(SUBSTITUTE(A9;" ";""))))-1)
Lấy tên: =RIGHT(A9;LEN(A9)-FIND("*";SUBSTITUTE(A9;" ";"*";LEN(A9)-LEN(SUBSTITUTE(A9;" ";"")))))

Mình muốn các bạn sửa lại giùm mình thành Họ đi riêng; Tên lót và tên thật đi chung. Ví dụ tên: Nguyễn Văn Nhân mà mình muốn tách ra "Nguyễn" và "Văn Nhân" thì làm thế nào?

Public Function Tach_Ten(hoten As String, YN As Boolean)
Dim a, b, c As Byte
a = Trim(hoten)
b = 0
For c = 0 To Len(a) Step 1
b = b + 1
If Mid(a, b, 1) = " " Then
Exit For
End If
Next
If YN = True Then
Tach_Ten = Left(a, b)
Else
Tach_Ten = Trim(Right(a, Len(a) - b))
End If
End Function


View attachment hoten.xlsx
 
Public Function Tach_Ten(hoten As String, YN As Boolean)
Dim a, b, c As Byte
a = Trim(hoten)
b = 0
For c = 0 To Len(a) Step 1
b = b + 1
If Mid(a, b, 1) = " " Then
Exit For
End If
Next
If YN = True Then
Tach_Ten = Left(a, b)
Else
Tach_Ten = Trim(Right(a, Len(a) - b))
End If
End Function


View attachment 87704
Code chưa bẫy lỗi nha! (chuổi rổng hoặc chuổi chỉ có 1 từ).
Ngoài ra đã là TÁCH TÊN thì phải có HỌ, TÊN, CHỮ LÓT... Vậy CHỮ LÓT của bạn đâu?
 
Web KT

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

Back
Top Bottom