Làm cách nào để đảo chuỗi trong excel (6 người xem)

  • Thread starter Thread starter salam
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

salam

Thành viên gắn bó
Tham gia
4/11/06
Bài viết
1,945
Được thích
1,898
Giới tính
Nam
Nghề nghiệp
Accountant
Em có một vấn đề muốn hổi các bác trên GPE.
Ở ô bất kỳ em đánh chuỗi họ tên
VD: A1="Nguyen Van A". đổi thành B1="A Van Nguyen" có cách nào không các bác.
Em xin cảm ơn!
 
Bác dùng hàm này nhé:
Mã:
Function daochuoi(strText As String)
'Ham dao cac thanh phan trong chuoi, cach nhau boi dau cach
Dim strtext2() As String
Dim strtext3 As String
Dim i As Long
strText = Trim(strText)
strtext2 = Split(strText, Space(1))  
For i = UBound(strtext2) To 0 Step -1 
 strtext3 = Trim(strtext3 & Space(1) & strtext2(i))
Next i
daochuoi = strtext3
End Function
 
Đã có rất nhiều người đưa ra các phương án hay, bạn có thể tham khảo thêm tại đây
 
Với bài toán này thì ko nên xem nó là ĐẢO CHUỔI... chừng nào GPE ---> EPG thì mới xem là ĐẢO...
Nên dùng phương pháp tách họ tên làm chuẩn... Mấy hàm này có trên diển đàn rất nhiều...
Ví dụ ta có hàm TACHTEN với cú pháp =TACHTEN(Chuoi,tham số)
Với:
Tham số =1 cho kết quả là Họ
Tham số =2 cho kết quả là Chử lót
Tham số =3 cho kết quả là Tên
Vậy đễ đạt dc kết quả như ở trên thì chỉ cần kết hợp:
=TACHTEN(chuoi, 3)&" "&TACH(chuoi,2)&" "&TACHTEN(chuoi,1)
Ko cần tạo thêm 1 Function khác.. vì rất hiếm khi dùng đến
Mến
ANH TUẤN
 
anhtuan1066 đã viết:
Vậy đễ đạt dc kết quả như ở trên thì chỉ cần kết hợp:
=TACHTEN(chuoi, 3)&" "&TACH(chuoi,2)&" "&TACHTEN(chuoi,1)
Ko cần tạo thêm 1 Function khác.. vì rất hiếm khi dùng đến
Mến
ANH TUẤN

tên việt Nam thì đâu phải là chỉ có 3 từ, cho nên phải dùng hàm của bạn Lam_AO thôi bác ơi!
 
SoiBien đã viết:
tên việt Nam thì đâu phải là chỉ có 3 từ, cho nên phải dùng hàm của bạn Lam_AO thôi bác ơi!
Ko phải Soibien ơi... cái tôi đưa lên chỉ là ví dụ thôi... Hàm tách tên vẫn tách dc tên có 4, 5 từ cơ mà...
Ý tôi muốn nói cái chuyện đảo đảo kiểu này rất hiếm khi dùng tới.. nên nếu có thể dùng dc những cái có sẳn thì cứ dùng... ko cần tạo Function cho phí... Đó là chưa nói với yêu cầu trên, chức năng của Excel thừa sức làm dc (dùng công cụ Text to Column)
ANH TUẤN
 
Em không biết là việc gọi hàm và lập công thức cái nào chạy nhanh hơn, nhưng em nghĩ lập hàm chỉ phải lập 1 lần, test, rồi chạy vô tư, không cần phải quan tâm nó làm gì trong đó. Còn riêng việc lập công thức của bác đã thấy dài hơn, có thể làm tăng dung lượng nếu CSDL lớn. Còn bác có nhu cầu đảo hay làm cái gì khác thì em sẽ lập hàm giải quyết cái đó.
Em phải cái dốt Excel, nên có nhiều cái đơn giản cũng cặm cụi viết code, đến lúc mọi người đưa ra một công thức đơn giản để xử lý mới thấy ngu ngơ...
 
Cám ơn các bác Em dùng function của bác Lam_AO chạy rất tốt đúng ý của em. Còn dùng CT có sẵn của Excel nó dài dài à. Đúng như Bác Tuấn nói về việc thay đổi thứ tự tên họ ít người sử dụng nhưng không phải không có vì họ phải theo yêu cầu công việc của từng người mà. Một lần nữa cám ơn các bác. Chúc các bác một ngày mới vui vẻ.
 
Cám ơn các bác Em dùng function ca bác Lam_AO chy rt tt đúng ý ca em. Còn dùng CT có sn ca Excel nó dài dài à. Cũng như Bác Tun nói v vic thay đổi th t tên h ít người s dng nhưng không phi không có vì h phi theo yêu cu công vic ca tng người mà. Mt ln na cám ơn các bác. Chúc các bác mt ngày mi vui v.
 
Ý tôi ko phải là dùng hàm có sẳn của Excel... Tại có lần tôi thấy trên diển đàn này có hàm TACHTEN... vậy thì vận dụng nó, kết hợp thêm vài thuật toán nữa... đâu có dài gì chứ
 
Giới thiệu các bạn hàm tách tên không cần viết vba , chỉ dùng hàm có sẵn của excel
Giả sử ô A2 đang chứa tên (không có ký tự khoảng trắng ở đầu và cuối)
ví dụ là
Đồng Thị Ngọc Diễm

thì hàm tách tên là
=RIGHT(A2,LEN(A2)-FIND("*",SUBSTITUTE(A2," ","*",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))),1))

sẽ trả về tên là
Diễm

Từ đây có thể dễ dàng tách họ bằng hàm
=LEFT(A2,FIND(" ",A2,1)-1)
trả về : Đồng

Chữ lót
=TRIM(LEFT(RIGHT(A2,LEN(A2)-LEN(C2)),LEN(RIGHT(A2,LEN(A2)-LEN(C2)))-LEN(E2)))
trả về : Thị Ngọc

Họ+ chữ lót
=LEFT(A2,LEN(A2)-LEN(E2))
trả về : Đồng Thị Ngọc

(chú ý : E2 là tên)

Thân chào !
(Cần Thơ, 13/6/2014)
 
Cách làm tìm vị trí cuối cùng của dấu " " quá thông minh
 
Web KT

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

Back
Top Bottom