Ba Tê
Cạo Rồi Khỏi Gội
các anh chị cho e xin đoạn code VBA viết ghép các ký tự lại như trong file e đưa lên nhé
cám ơn
Với 64 bài bạn đã gởi, Bạn xem lại cái này:
Các phương pháp tách họ và tên đề nghị post ở đây
các anh chị cho e xin đoạn code VBA viết ghép các ký tự lại như trong file e đưa lên nhé
cám ơn
Các phương pháp tách họ và tên đề nghị post ở đây
Tặng bạn Function đơn giản này chép vào cửa số VBAcác anh chị cho e xin đoạn code VBA viết ghép các ký tự lại như trong file e đưa lên nhé
cám ơn
minh biết lổi rui, cám ơn bạn đã nhac nhở, nhưng bạn ơi minh copy vao xong không dùng được bạn chỉ mình dùng thế nào vớiTặng bạn Function đơn giản này chép vào cửa số VBA
[GPECODE=vb]
Function GhepChuoi(ByVal Vung As Range, Optional DauNoi As String) As String
With WorksheetFunction
GhepChuoi = .Trim(Join(.Transpose(Vung.Value), DauNoi))
End With
End Function
[/GPECODE]
Công thức chỉ đúng với vùng dữ liệu là 1 cột nếu 2 cột sẽ bị sai hiện tại chỉ viết theo yêu cầu của bạn
Ví dụ:
=ghepchuoi(E5:E8,",")
Bạn post nhiều bài rồi nên chú ý đừng post không đúng chủ để
[COLOR=#000000][COLOR=#007700]{=[/COLOR][COLOR=#0000BB]MID[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]TRIM[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]A2[/COLOR][COLOR=#007700]),[/COLOR][COLOR=#0000BB]FIND[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]" "[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]TRIM[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]A2[/COLOR][COLOR=#007700]))+[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]MAX[/COLOR][COLOR=#007700](([/COLOR][COLOR=#0000BB]MID[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]TRIM[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]A2[/COLOR][COLOR=#007700]),[/COLOR][COLOR=#0000BB]ROW[/COLOR][COLOR=#007700]($[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]:$[/COLOR][COLOR=#0000BB]50[/COLOR][COLOR=#007700]),[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) =[/COLOR][COLOR=#DD0000]" "[/COLOR][COLOR=#007700])*[/COLOR][COLOR=#0000BB]ROW[/COLOR][COLOR=#007700]($[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]:$[/COLOR][COLOR=#0000BB]50[/COLOR][COLOR=#007700]))-[/COLOR][COLOR=#0000BB]FIND[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]" "[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]TRIM[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]A2[/COLOR][COLOR=#007700])))}[/COLOR][/COLOR]
[COLOR=#000000][COLOR=#007700]{=[/COLOR][COLOR=#0000BB]MID[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]TRIM[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]A2[/COLOR][COLOR=#007700]),[/COLOR][COLOR=#0000BB]FIND[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]" "[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]TRIM[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]A2[/COLOR][COLOR=#007700]))+[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]MAX[/COLOR][COLOR=#007700](([/COLOR][COLOR=#0000BB]MID[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]TRIM[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]A2[/COLOR][COLOR=#007700]),[/COLOR][COLOR=#0000BB]ROW[/COLOR][COLOR=#007700]($[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]:$[/COLOR][COLOR=#0000BB]50[/COLOR][COLOR=#007700]),[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) =[/COLOR][COLOR=#DD0000]" "[/COLOR][COLOR=#007700])*[/COLOR][COLOR=#0000BB]ROW[/COLOR][COLOR=#007700]($[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]:$[/COLOR][COLOR=#0000BB]50[/COLOR][COLOR=#007700]))-[/COLOR][COLOR=#0000BB]FIND[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]" "[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]TRIM[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]A2[/COLOR][COLOR=#007700]))[/COLOR][/COLOR][COLOR=#ff0000][B]-1[/B][/COLOR][COLOR=#000000][COLOR=#007700])}[/COLOR][/COLOR]
Đúng như bạn nói họ lót bị dư 1 khoảng trắng, nhưng nếu mình -1 như công thức bạn đề nghị sẽ có trường hợp bị lỗi do không có họ lót (Trường hợp Họ và Tên có 2 chữ).
Nếu Họ và Tên chỉ có 1 chữ thì hàm cũng sẽ bị lỗi.
Xem thêm bài này về tách họ tên:
http://www.giaiphapexcel.com/forum/showthread.php?92281
TPhong
[COLOR=#000000][COLOR=#007700]{[/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]=MID(TRIM(A2),FIND(" ",TRIM(A2))+1,IF([/COLOR][/COLOR][COLOR=#b22222]MAX((MID(TRIM(A2),ROW(1:50),1)=" ")*ROW(1:50))-FIND(" ",TRIM(A2))[/COLOR][COLOR=#ff0000]-1[/COLOR][COLOR=#000000][COLOR=#007700]<0,0, _
[/COLOR][/COLOR][COLOR=#b22222]MAX((MID(TRIM(A2),ROW(1:50),1)=" ")*ROW(1:50))-FIND(" ",TRIM(A2))[/COLOR][COLOR=#ff0000]-1[/COLOR][COLOR=#000000][COLOR=#007700]))}[/COLOR][/COLOR]
{=RIGHT(C2;LEN(C2)-LARGE((MID(C2;ROW(INDIRECT("1:"&LEN(C2)));1)=" ")*ROW(INDIRECT("1:"&LEN(C2)));1))}
Ai test thử cái này xảy ra lỗi gì không?
Nếu ký tự cuối cùng của C2 là khoảng trắng thì giá trị trả về là ""{=RIGHT(C2;LEN(C2)-LARGE((MID(C2;ROW(INDIRECT("1:"&LEN(C2)));1)=" ")*ROW(INDIRECT("1:"&LEN(C2)));1))}
Ai test thử cái này xảy ra lỗi gì không?
không hiểu luật như thế nào mà Find what nhập * như vậy nó xóa hết họ và tên đệm hay quá ta, cho ta thêm 1 cách ưa thích nữaCó một phương pháp khá đơn giản không cần VBA hoặc công thức quá phức tạp. Xin góp thêm để mọi người tham khảo.
Ví dụ ban đầu ta có Cột A chứa Họ và Tên. Cần tách Họ sang cột B và Tên sang cột C. Cách làm như sau:
1. Chép toàn bộ dữ liệu cột A sang cột C.
2. Sử dụng tìm và thay trong excel đối với cột C. Ở mục Find what nhập * và một khoảng trắng. Mục Replace with để trống. Chọn Replace All. Sau khi thay thế cột C giờ chỉ còn tên.
3. Lập công thức ở cột B như sau: =LEFT(A2,LEN(A2)-LEN(C2)).
Cuối cùng ta đã có hai cột B và C đã tách họ tên theo yêu cầu. Quá đơn giản phải không!
Chúc mọi người có một ngày vui.
Thực ra trên diễn đàn nói rất nhiều về vấn đề này rồi nên bạn có thể search để tìm giải pháp khác ngắn hơn.em có một cột chuỗi họ và tên, em đã chạy công thức tách tên từ chuỗi nhưng một vài dòng chạy còn lại thì không, những chuỗi không tách được tên em phai đánh thủ công vào thì công thức mới chạy được. anh (chị) cho em hỏi là vì sao vậy và mình làm cách nào để chạy ko bị lỗi.E cảm ơn
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2