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

Liên hệ QC
Hình như là phải kéo công thức của các ô "Họ", "Tên", "Lót" xuông dòng dưới hay sao bác ạ. Vì Bác Bắp chỉ lập function "tach" thôi chứ không tách luôn họ, lót, tên ra.
 
Ah... ah... quên xem... Tôi cứ tưởng macro nó làm tuốt tuồn tuột.. ko có công thức gì cả chứ
Cám ơn...

Ah... ha... nếu vậy thì có thể save file này thành .xla đễ làm User Define Function luôn nhỉ... Đở mất công Enable macro... Có lý
Cám ơn
ANH TUẤN
 
Cảm ơn các bác đã quan tâm . Cú pháp là :
tach(Chuoi, Kytu, Loai)

Ở đó :
  1. Chuoi :Tên họ đầy đủ
  2. Kytu : Bất kỳ ký tự đặc biệt nào để phân các từ ra. VD như chuỗi : Trần - Anh-Tuấn, thì kytu chính là -
  3. Loai: Tùy theo lựa chọn cần tách Họ, Lót, Tên mà sẽ tương ứng là ho; lot; ten
Như vậy nó sẽ tách họ, tên và lót riêng rẽ ra.

Còn việc như bác anhtuan nói ở trên, thì đúng là Tiếng Việt phức tạp nên lúc thì họ là 1 từ lúc thì họ là 2 từ . . . . . Nếu có được qui luật thì mới làm được. Còn không thì . . . ngồi cười vậy thôi.

VD : Nguyễn Vân; Vũ Như Cẩn; Nguyễn Thị Minh Khai; Nguyễn Đình Bảo Chung; Cao Thị Lê Phương Thúy. . . .

Thân!
 
anhtuan1066 đã viết:
Ah... ha... nếu vậy thì có thể save file này thành .xla đễ làm User Define Function luôn nhỉ... Đở mất công Enable macro... Có lý
Cám ơn
ANH TUẤN
Cái này là hàm "tự tạo" nên anh phải copy công thức. Nếu muốn Click 1 cái là nó tách 1 lèo luôn thì anh sửa code lại.

Thân!
 
đâu có mình thấy nó chạy tốt lắm mà chạy đúng đó bạn xem lại đi!thank "Phước nhé"
 
Code của Mr Be rất hay, sao không dùng hàm InStr và InStrRev theo name manager của MaiKa cũng hay lắm.
 
tedaynui đã viết:
Chào thầy
Em gởi thầy thử mấy công thức này xem. Nếu được thì thầy khỏi dùng VBA
Tại ô A2 chứa chuỗi tên (VD : Nguyễn Trần Thanh Hùng)
Họ : =LEFT(A2,FIND(" ",A2,1))
Tên : =RIGHT(A2,LEN(A2)-FIND("*",SUBSTITUTE(A2," ","*",LEN(A2)-LEN(SUBSTITUTE(A2," ","")))))
Lót : =TRIM(RIGHT(A2,LEN(A2)-LEN(B2)-LEN(C2)))
Họ và lót : =LEFT(A2,FIND("*",SUBSTITUTE(A2," ","*",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))-1)

TDN

tách chữ lót đó hình như không đúng
Lót : =TRIM(RIGHT(A2,LEN(A2)-LEN(B2)-LEN(C2)))
bạn xem fiel của mình nhé tách ra 4 cột lót nhé ! có được không . bạn chỉnh sửa lại cho mình nhé! thank
 

File đính kèm

  • xemlaigium.rar
    2.1 KB · Đọc: 66
Nếu bạn muốn thế thì dùng công thức phức tạp lắm... Vào menu Data, chọn công cụ Text to Column... 1 phát ra liền, nhanh như chớp...
 
ongtrungducmx25 đã viết:
tách chữ lót đó hình như không đúng
Lót : =TRIM(RIGHT(A2,LEN(A2)-LEN(B2)-LEN(C2)))
bạn xem fiel của mình nhé tách ra 4 cột lót nhé ! có được không . bạn chỉnh sửa lại cho mình nhé! thank
Thầy ơi,
Em test lại thấy ổn mà. Ví dụ tên "Thái Thị Mỹ Dung" thì em nghĩ Lót là "Thị Mỹ", nêm công thức ấy vẫn ổn mà.
Ý thầy Lót là "Thị" và "Mỹ". Vậy thì thì dùng hàm Left, Mid cắt tiếp. Ví dụ ô D4 là "Thị Mỹ" thì thầy lấy chữ "Thị" bằng công thức
=LEFT(D4,FIND(" ",D4,1))

@ Ngoài ra, có thể dùng công thức mảng nhưng nó dài quá nhìn thấy ngán lắm.
Thân!
 
Em ko hiểu nhiều về công thức, nhưng làm đc thành công thức thì nó có tinihs tự động cao, và có thể ứng dụng đc sang những cái khác. Nhưng nếu chỉ để tách tên theo đề bài thì làm theo cách của anh Tuấn rất nhanh và đơn giản, chỉ cần chọn vùng dự liệu thì làm theo tuần tự như sau là đc.
1.JPG

http://giaiphapexcel.net/files/43875984376/2.JPG
http://giaiphapexcel.net/files/43875984376/3.JPG
 
cám ơn em thầy đã phải làm nhiều cột mới đạt được " nhưng phải dấu nhiều cột thôi " cách này cũng tạm được! thank nhé!
 

File đính kèm

  • xemlaigium01.rar
    2.1 KB · Đọc: 46
Lần chỉnh sửa cuối:
ongtrungducmx25 đã viết:
cám ơn em thầy đã phải làm nhiều cột mới đạt được " nhưng phải dấu nhiều cột thôi " cách này cũng tạm được! thank nhé!
Anh Thầy làm thế là chơi cho vui thôi. Chứ nếu tên 2 chữ, 3 chữ, 4 chữ,... thì anh thầy gặp rắc rối ngay. Tốt nhất, muốn tách kiểu này thì dùng Text to Column.

Thân !
 
zây hả, dung text colum thì tách ra đầy đủ lắm , nhưng mình chỉ thích tách tên thôi có được không cũng dùng text colum được không! hoặc họ
riêng như dùng công thức có được không ! chắc khó hé
 
Ông thấy này tôi bảo đảm ko phải dạy môn Văn... hi.. hi.. Bài viết đọc 10 lần mới hiểu nổi Thầy muốn cái gì...
 
Nếu chỉ tánh họ thì Text to Column ngon lành nhưng nếu tách tên thì không ổn lắm. Tóm lại, nếu chỉ tách tên và phần còn lại (Họ và Lót) thì dùng công thức hoặc VBA. Nhưng em vẫn thường dùng VBA vì thấy nó tiện hơn. File nhẹ hơn và không dùng thêm cột fụ thứ 3, thứ 4.

Thân!
 
Hình như có 1 hàm đảo ngược thứ tự các ký tự lại phải không các bác ??
(hàm của excel nhé)

VD : GPE --> EPG


Thân!
 
Là code này đây:
PHP:
Function RevText(S As String) As String
    Dim Ndx As Integer
    For Ndx = Len(S) To 1 Step -1
        RevText = RevText & Mid(S, Ndx, 1)
    Next Ndx
End Function

Và còn nữa:

PHP:
Public Function rev(t)
  rev = ""
  ct = Len(t)
  For i = ct To 1 Step –1
    rev = rev & Mid(t, i, 1)
  Next i
End Function
Tiếp cái nữa:
PHP:
Public Function rev(t)
   rev = StrReverse(t)
End Function
 
anhtuan1066 đã viết:
Là code này đây:

Function RevText(S As String) As String
Dim Ndx As Integer
For Ndx = Len(S) To 1 Step -1
RevText = RevText & Mid(S, Ndx, 1)
Next Ndx
End Function

Công thức của Excel cơ, chứ lại hàm tự viết thì không được.

Thân!
 
Hình như ko có.. mình phải tự làm thôi Bắp à!
 
Ý của em định là : Vì một số thích công thức
  1. Tìm ra vị trí của khoảng trắng đầu tiên (hàm Find)
  2. Tìm ra vị trí khoảng tráng cuối cùng (dựa vào hàm đảo ngược và hàm LEN)
Sau đó việc tiến hành tách họ, tên, lót rất đơn giản

Thân!
 
Web KT
Back
Top Bottom