=LEFT(A1,FIND(" ",A1)-1)
Ông này hỏi chuyện tách tách này nhiều chỗ lắm:Bài này bạn vừa hỏi ở đây rồi mà.
http://www.giaiphapexcel.com/forum/showthread.php?55247-Tách-từ-bên-trái-trong-chuỗi-ký-tự
Đúng cấu trúc như trong bài thì thử cái này xem nhé em traiNhâ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.
Public Function Ma(Cll As Range) As String
Ma = Left(Cll, InStrRev(Cll, "-") - 1)
End Function
Code này phải "bo" lại chút:Đúng cấu trúc như trong bài thì thử cái này xem nhé em trai
ThânMã:Public Function Ma(Cll As Range) As String Ma = Left(Cll, InStrRev(Cll, "-") - 1) End Function
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 í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
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ổiHình như em này Ma = Trim(Chuoi) bị....dư hay sao í
Híc
Dear all!
Giả sử mình có chuỗi họ tên như sau:Nguyễn Thị Minh Khaimình muốn viết thành
Lê Văn Lương
Giải Phóng
KhaiTTM
LuongLV
PhongG
newtext=SUBSTITUTE(TRIM(Sheet1!$A7)," ",REPT(" ",100))
nospace=LEN(TRIM(Sheet1!$A7))-LEN(SUBSTITUTE(TRIM(Sheet1!$A7)," ",""))
=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))))))
Cái này dùng hàm tự tạo điDear 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 Khaimình muốn viết thành
Lê Văn Lương
Giải Phóng
KhaiTTMTrong excel có hàm nào giải quyết được việc này không nhỉ?
LuongLV
PhongG
Các bạn có biết thì chia sẻ cho mình với nhé!
Cảm ơn các bạ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
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)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))
lọc một cột theo tên, dùng sort ascending hoặc sort descending để sắp xếp lạ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.
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.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ọ!
Tách riêng họ: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.
=LEFT(B6,FIND(" ",B6))
=TRIM(RIGHT(SUBSTITUTE(B6," ",REPT(" ",255)),LEN(B6)))
=LEFT(B6,FIND(" ",B6))&TRIM(RIGHT(SUBSTITUTE(B6," ",REPT(" ",255)),LEN(B6)))
=TRIM(LEFT(SUBSTITUTE(B6," ",REPT(" ",255)),255))&" "&TRIM(RIGHT(SUBSTITUTE(B6," ",REPT(" ",255)),255))
Tách riêng họ:
Tách riêng tên:Mã:=LEFT(B6,FIND(" ",B6))
=> Tách họ tên:Mã:=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).Mã:=LEFT(B6,FIND(" ",B6))&TRIM(RIGHT(SUBSTITUTE(B6," ",REPT(" ",255)),LEN(B6)))
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!!!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.
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 tinThự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!!!
Bạn xem bài này có giúp ích gì cho bạn không?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?
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ổ.
Sub tach_ten()
[a:a].Copy [b:b]
[b:b].Replace "* ", ""
End Sub
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?
Code chưa bẫy lỗi nha! (chuổi rổng hoặc chuổi chỉ có 1 từ).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
Vì không có dữ liệu nên không thể kiểm tra hết các tình huống, với mẫu ví dụ của bạn, có thể dùng tạm công thức sau:Mình hỏi ké một chút. Mình có chuỗi Brown Miller - Stolen Dreams mình muốn chuyển nó thành Miller Brown - Stolen Dreams thì làm sao? Mình đang add rules cho Winsome File Renamer 7 để đặt lại tên cho đám ebook nước ngoài của mình mà bị vướng cái này >< Cám ơn trước
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ổ.
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?
hiiiiiii bạn dùng công thức này đi :
=right(a1(len(a1)-trim(find("Đồng Lai",a1))+1)
là OK ngay đấy
Sao mà tổng quát được với Quận 2, TP.HCM v.v...Hi, rất cảm ơn bạn đã trả lời bài viết của mình, nhưng mình thấy là chưa tổng quát. Vì nếu tên tỉnh khác Đồng Nai thì không lấy được. Trong lúc mình đợi kết quả trả lời thì mình đã tìm được lời giải rồi, xin cảm ơn
ct:=trim(right(substitute(a1," ",rept(" ",100),200)
Nếu dữ liệu là:Hi, rất cảm ơn bạn đã trả lời bài viết của mình, nhưng mình thấy là chưa tổng quát. Vì nếu tên tỉnh khác Đồng Nai thì không lấy được. Trong lúc mình đợi kết quả trả lời thì mình đã tìm được lời giải rồi, xin cảm ơn
ct:=trim(right(substitute(a1," ",rept(" ",100),200)
Nếu dữ liệu là:
Công an TP Hồ Chí Minh
thì sao hả bạn ????
Thân
Híc
Bạn í nhập thiếu một dấu ")" í mà, nhưng cũng không tổng quátVới dữ liệu chủ thớt đưa ra, rồi đưa công thức luôn (=trim(right(substitute(a1," ",rept(" ",100),200) ) cũng có đúng đâu bác.
=LOOKUP(2,1/FIND(DMT,TRIM($A2)),DMT)
Công thức tại ô D4 :Em có ví dụ này mà nghĩ mãi không ra công thức. Em đưa lên đây nhờ các anh chị thiết lập dùm em nhé!
(Câu hỏi cụ thể trong file đính kèm)
=TRIM(RIGHT(C4,LEN(C4)-FIND("-",C4)))
Em có ví dụ này mà nghĩ mãi không ra công thức. Em đưa lên đây nhờ các anh chị thiết lập dùm em nhé!
(Câu hỏi cụ thể trong file đính kèm)
Em có một danh sách khách hàng dai khoản 1000 người đang cần phân loại nam nữ như dựa vào tên đệm. khi viết như vậy sẽ sảy ra tên người" nguyễn thanh hải" thì sẽ ko phân phân loại được thì e sẽ để trống và phân loại ra thành mục khác. bác nào chỉ giúp em dc ko. e dùng hàm if, and, find như sao ko dc. bác nào chỉ giúp em với. ko bt e dùng hàm như vậy có đúng ko?
=IF(MID(B3,FIND(" ",B3)+1,3)="Văn","nam",IF(MID(B3,FIND(" ",B3)+1,3)="Thị","nữ","phan loai sau"))
Có thể dùng công thức sau:
HTML:=IF(MID(B3,FIND(" ",B3)+1,3)="Văn","nam",IF(MID(B3,FIND(" ",B3)+1,3)="Thị","nữ","phan loai sau"))
=LOOKUP(2,1/COUNTIF(B3,{"*","*thị*","*văn*"}),{"Phân loại sau","Nữ","Nam"})
Theo em thì công thức của anh ndu nên sửa lại như thế này để tránh sai trong các trường hợp họ hoặc tên có chuỗi "Văn" hoặc "Thị" như Trần Quốc Thịnh, Nguyễn Thơ Văn.Ngắn hơn chút:
PHP:=LOOKUP(2,1/COUNTIF(B3,{"*","*thị*","*văn*"}),{"Phân loại sau","Nữ","Nam"})
=LOOKUP(2,1/COUNTIF(B3,{"*","* thị *","* văn *"}),{"Phân loại sau","Nữ","Nam"})
Có thể dùng công thức sau:
HTML:=IF(MID(B3,FIND(" ",B3)+1,3)="Văn","nam",IF(MID(B3,FIND(" ",B3)+1,3)="Thị","nữ","phan loai sau"))
Sửa lại thế nàyEm có dùng hàm để cắt các ký tự sau dấu "-" của 1 chuỗi. Lỗi xảy ra khi chuỗi không có dấu "-". Mong nhờ các anh chị chỉ giúp. Em xin chân thành cảm ơn ạ.
=IF(ISERROR(FIND("-",B4,1)),B4,LEFT(B4,FIND("-",B4,1)-2))Cảm ơn bác nhiều nhé, chính xác rồi. Nhưng nhờ bác dịch hộ câu lệnh trên được không ?
DùngCó cách nào lấy Chữ lót và tên (không lấy họ) được không bạn?
Ví dụ: phòng Công nghê Thông tin
chỉ lấy: Công nghệ Thông tin thôi, bỏ chữ phòng đi ấy!
Thân.
Cái này dùng code thì đơn giản, công thức thì pótayCó cách nào tách được tên ra khỏi chữ lót không ạ ! ví dụ: Trần Thị KimNga là sao tách ra được là Trần Thị Kim Nga
Thân
Nếu bạn dùng bản mã VNI Windows thì có thể dùng công thức như trong file đính kèm.Có cách nào tách được tên ra khỏi chữ lót không ạ ! ví dụ: Trần Thị KimNga là sao tách ra được là Trần Thị Kim Nga
Thân
Có hàm nào tìm ký tự trắng đầu tiên từ phải sang không các bạn ?. Nhờ các bạn chỉ giúp...!
ví dụ: ký tự trắng đầu tiên trong chuổi ký tự " Nhờ các bạn chỉ giúp" là: thứ 5
Có hàm nào tìm ký tự trắng đầu tiên từ phải sang không các bạn ?. Nhờ các bạn chỉ giúp...!
ví dụ: ký tự trắng đầu tiên trong chuổi ký tự " Nhờ các bạn chỉ giúp" là: thứ 5
=LOOKUP(2,1/(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)= " "),LEN(A1)+1-ROW(INDIRECT("1:"&LEN(A1))))
"Rặn" ra thêm một cáchCó hàm nào tìm ký tự trắng đầu tiên từ phải sang không các bạn ?. Nhờ các bạn chỉ giúp...!
ví dụ: ký tự trắng đầu tiên trong chuổi ký tự " Nhờ các bạn chỉ giúp" là: thứ 5
Híc, lỡ ký tự cuối cùng là khoảng trắng thì lấy thứ tự là 1 hay loại khoảng trắng vô nghĩa đó nhỉ ???=LEN(TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",LEN(A1))),LEN(A1))))+1
Nếu có nhu cầu sử dụng nhiều việc tìm kiếm này thì có thể xây dựng hàm tự tạo (xem như một tham khảo cho vui):Có hàm nào tìm ký tự trắng đầu tiên từ phải sang không các bạn ?. Nhờ các bạn chỉ giúp...!
ví dụ: ký tự trắng đầu tiên trong chuổi ký tự " Nhờ các bạn chỉ giúp" là: thứ 5
"Rặn" ra thêm một cách
Híc, lỡ ký tự cuối cùng là khoảng trắng thì lấy thứ tự là 1 hay loại khoảng trắng vô nghĩa đó nhỉ ???=LEN(TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",LEN(A1))),LEN(A1))))+1
Thân
Híc, nếu xảy ra trường hợp không có khoảng trắng nào trong chuỗi thì làm 2 việc:Anh ơi! Nếu chuổi không có khoảng trắng nào thì nó cho kết quả sai
Thà rằng bị lỗi, chứ kết quả sai thì không thể chấp nhận
Bài này đương nhiên dùng VBA là quá dễ rồi
Thử thêm cách nữa xem:Có hàm nào tìm ký tự trắng đầu tiên từ phải sang không các bạn ?. Nhờ các bạn chỉ giúp...!
ví dụ: ký tự trắng đầu tiên trong chuổi ký tự " Nhờ các bạn chỉ giúp" là: thứ 5
=MAX((MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)=" ")*ROW(INDIRECT("1:"&LEN(A1))))
=(LEN(A1)-MAX((MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)=" ")*ROW(INDIRECT("1:"&LEN(A1)))))*(LEN(A1)<>LEN(SUBSTITUTE(A1," ","")))+1
đếm vị trí ký tự trắng cuối cùng (tức từ trái sang phải thì là ký tự trắng cuối cùng)=LEN(A1)-FIND("_",SUBSTITUTE(A1," ","_",(LEN(A1)-LEN(SUBSTITUTE(A1," ","")))))+1
=FIND("_",SUBSTITUTE(A1," ","_",(LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))
Bạn cứ đọc lại yêu cầu của người hỏi là rõ ngay thôi chứ gì:cái câu hỏi ko hiểu ý cho lấm có 3 tình trang
1) chuỗi gồm bao nhiêu ký tự trăng
2) ký tự trắng đầu tiên của chuỗi
3) ký tự trắng cuối cùng (tức từ phải sang trái thì là ký tự đầu tiên)
và kết quả muốn lấy là chuỗi hay ký tự trăng
muốn lấy chữ nhờ hay là chữ giúp theo mình thì ko lý nào lấy ký tự trắng
- Câu hỏi 1: Không quan trọng bao nhiêu ký tự trắng.Có hàm nào tìm ký tự trắng đầu tiên từ phải sang không các bạn ?. Nhờ các bạn chỉ giúp...!
ví dụ: ký tự trắng đầu tiên trong chuổi ký tự " Nhờ các bạn chỉ giúp" là: thứ 5
vậy thì nó là cái này :Bạn cứ đọc lại yêu cầu của người hỏi là rõ ngay thôi chứ gì:
- Câu hỏi 1: Không quan trọng bao nhiêu ký tự trắng.
- Câu hỏi 2 và 3: Câu trả lời nằm ở chỗ màu xanh.
- Câu hỏi kế tiếp: Chỗ màu đỏ cho biết công thức phải trả về vị trí xuất hiện của ký tự trắng đầu tiên từ bên phải sang.
=LEN(A1)-FIND("_",SUBSTITUTE(A1," ","_",(LEN(A1)-LEN(SUBSTITUTE(A1," ","")))))+1
kết quả 12 không như yeu cầu=LEN(A1)-LEN(SUBSTITUTE(A1;" ";""))
với ví dụ "Xuân Lý" = 1 Không như yêu cầu=LOOKUP(2,1/(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)= " "),LEN(A1)+1-ROW(INDIRECT("1:"&LEN(A1))))
kết quả tốt nhất=LEN(TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",LEN(A1))),LEN(A1))))+1
Bạn có nhầm lẫn không nhỉ? Tôi thử với chuỗi trên ra kết quả là 3 mà. Có lẽ chuỗi của bạn không phải là "Xuân Lý" mà là "Xuân Lý " (dư ít nhất 1 khoảng trắng ở cuối).với ví dụ "Xuân Lý" = 1 Không như yêu cầu=LOOKUP(2,1/(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)= " "),LEN(A1)+1-ROW(INDIRECT("1:"&LEN(A1))))
cám ơn bạn...!nhưng thực ra khi người gõ chổi vô tình gỏ thêm một dữ liệu trắng cuối cùng thì khó mà tim ra trong chuổi dữ liệu dài như thế đc. Mình chỉ kiểm tra với công thức concogia thì sẻ khắc phục đc lỗi này công thức trênBạn có nhầm lẫn không nhỉ? Tôi thử với chuỗi trên ra kết quả là 3 mà. Có lẽ chuỗi của bạn không phải là "Xuân Lý" mà là "Xuân Lý " (dư ít nhất 1 khoảng trắng ở cuối).
nếu sợ lỡ tay ký tự trắng cuối cùng thì thế này :cám ơn bạn...!nhưng thực ra khi người gõ chổi vô tình gỏ thêm một dữ liệu trắng cuối cùng thì khó mà tim ra trong chuổi dữ liệu dài như thế đc. Mình chỉ kiểm tra với công thức concogia thì sẻ khắc phục đc lỗi này công thức trên
=LEN(TRIM(A1))-FIND("_",SUBSTITUTE(TRIM(A1)," ","_",(LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ","")))))+1
kết quả 12 không như yeu cầu
với ví dụ "Xuân Lý" = 1 Không như yêu cầu
kết quả tốt nhất
cũng được mà anh, tìm ra "số ký tự" , cái ấy nó là vốn cơ bản cho các việc khác tương tựTôi thắc mắc chút: Bạn xác định khoảng trắng cuối cùng để làm gì? Vì hổng lý nào chỉ để chơi?
Tôi đoán rằng bạn muốn tách từ cuối cùng trong chuổi? Nếu đúng thế thì đây là bài toán tách tên và chẳng ai làm kiểu đó bao giờ (thiếu chi cách dễ hơn)
Chẳng biết cái ấy là cái quỷ gì cảcũng được mà anh, tìm ra cái ấy nó là vốn cơ bản cho các việc khác tương tự
cũng được mà anh, tìm ra cái ấy nó là vốn cơ bản cho các việc khác tương tự
Em chào các anh chị
EM có file này cần tách số-Đường Phố- và quận. Các anh chị giúp em phương pháp tách với ạ. EM cảm ơn nhiều.
Không có hàm nào ngược với & cả. Nếu xác định được cái gì là "chuẩn" để tách thì có thể dùng công cụ Text to Column..Các Bạn làm ơn cho tôi hỏi : Truớc đây, tại các ô A1, B1, C1 tôi có "LM_" "Bích Thủy_" "Gò Công" tại ô D1 tôi có công thức D1= A1&B1&C1 nên kết quả tại ô D1 là : "LM_Bích Thủy_Gò Công" - Sau đó tôi đã mất hết dữ liệu tại các ô A1, B1, C1 - Chỉ còn chuỗi LM_Bích Thủy_Gò Công tại ô D1. Nay tôi muốn tách trở lại chuỗi đó thành các chuỗi nhỏ trong các ô A1="LM_"., B1="Bích Thủy"., C1="Gò Công" thì làm thế nào ? Trong Excel có dấu ( Hoặc hàm ) nào có ý nghĩa nguợc lại với dấu "&" không ? ( & là gộp các chuỗi tại các ô lại còn tôi thì muốn tách 1 chuỗi dài ra thành nhiều chuỗi ngắn )
Cảm ơn các Bạn nhiều
ĐÂY LÀ CÁCH TÔI ĐÃ HỌC ĐƯỢC TRÊN DIỄN ĐÀN VÀ ĐANG THỰC HIỆN, XIN CHIA SẺ CÙNG BẠN:
Từ file EXCEL có chứa dữ liệu bạn đang muốn tách họ và tên - bạn hãy nhấn Alt + F11 sau đó nhấn insert nhấn module dán đọan mã sau vào trong cửa sổ module:
Private Function Tachten(ten As String, lg As Integer)
Dim j As Integer
Name = Trim(ten)
For j = Len(Name) To 1 Step -1
If Mid(Name, j, 1) = " " Then
If lg = "1" Then
Tachten = Right(Name, Len(Name) - j)
Else
Tachten = Left(Name, j)
End If
Exit For
End If
Next
End Function
SỬ DỤNG HÀM TÍNH TÁCH HỌ VÀ TÊN:
Giả sử bạn muốn tách tên ra khỏi họ và họ đệm tại ô A1 = Phạm Xuân Trường / Gõ = tachten(A1,0) / Kết quả: Phạm Xuân
Giả sử bạn muốn tách tên ra khỏi họ và họ đệm tại ô A1 = Phạm Xuân Trường / Gõ = tachten(A1,1) / Kết quả: Trường
(Nếu muốn sử dụng hàm này cho tòan excel bạn hãy đọc thêm trên diễn đàn này)
Chúc bạn thành công !
Chào bạn Vungoc,
Tôi thử chạy code của bạn thì không chạy được. Bạn upload file excel lên giúp nha, tôi rất thích code này vì nhìn gọn nhẹ và tách được cả tên lẫn họ.Cám ơn.
Chỉ là bạn chưa hiểu nó & vận hành theo chỉ dẫn mà thôi!
Không có hàm nào ngược với & cả. Nếu xác định được cái gì là "chuẩn" để tách thì có thể dùng công cụ Text to Column..
Như trong ví dụ của bạn thì dùng "cái chuẩn" là dấu gạch "_" để tách. Nếu hổng có gì cả thì thua.
Sẵn đây xin hỏi Bạn Ba Tê : Tôi có cột gồm nhiều chuỗi có đọ dài khác nhau - Nay tôi muốn tách 3 ký tự đầu ra khỏi các chuỗi thì làm thế nào cho nhanh ? ( Các chuỗi liên tục, không có dấu phẩy, cách, _ .. gì hết )
Cảm ơn Bạn nhiều
Nếu bạn không biết hàm LEFT() là gì thì tôi nói đó là LEFT(), Nếu bạn biết mà vẫn làm không được thì tôi cũng không hiểu bạn muốn gì.
=LEFT(ô muốn lấy 3 ký tự đầu,3)
Híc!