Cắt chuỗi lấy ký tự "-" cuối cùng (1 người xem)

Liên hệ QC

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

thanhdqr

Thành viên mới
Tham gia
24/11/09
Bài viết
11
Được thích
0
Chào các bạn,
Mình gặp trường hợp sau:
Mình có 1 chuỗi dạng: a-b-c-d-e.xxx, giờ mình muốn cắt ra để lấy a-b-c-d.
Nhờ các bạn chỉ giúp.
 
Chào các bạn,
Mình gặp trường hợp sau:
Mình có 1 chuỗi dạng: a-b-c-d-e.xxx, giờ mình muốn cắt ra để lấy a-b-c-d.
Nhờ các bạn chỉ giúp.
cụ thể hơn đi bạn, chuỗi dạng này a-b-c-d trong đó a là 1 nhóm nhìu ký tự hay số ký tự a=b=c=d
 
Bạn chọn vùng dữ liệu , vào menu Edit---Find---Trong ô Find what bạn nhập : -e.???, trong ô Replace để trống---Chọn Replace all---OK
 
Bạn chọn vùng dữ liệu , vào menu Edit---Find---Trong ô Find what bạn nhập : -e.???, trong ô Replace để trống---Chọn Replace all---OK
Không ổn rồi anh ạ, theo em hiểu a-b-c-d-e.xxx thì các ký tự a, b, c, d, e,x chỉ là ký tự đại diện thôi chứ thực tế thì chúng phải là những (cụm) ký tự cụ thể chứ không phải bao giờ cũng là có chữ "e".
 
Không ổn rồi anh ạ, theo em hiểu a-b-c-d-e.xxx thì các ký tự a, b, c, d, e,x chỉ là ký tự đại diện thôi chứ thực tế thì chúng phải là những (cụm) ký tự cụ thể chứ không phải bao giờ cũng là có chữ "e".
Và nếu dữ liệu y chang như tác giả đưa lên thì =LEFT(A1,7) thôi
Ẹc... Ẹc... Chán mấy bài kiểu này quá đi!
 
Không ổn rồi anh ạ, theo em hiểu a-b-c-d-e.xxx thì các ký tự a, b, c, d, e,x chỉ là ký tự đại diện thôi chứ thực tế thì chúng phải là những (cụm) ký tự cụ thể chứ không phải bao giờ cũng là có chữ "e".


Chốt đinh có 4 cái gạch ngang nhưng mỗi nhóm lại không cố định số ký tự thì trước khi mọi người có cao kiến, mình lồng 4 thằng FIND là tìm chắc gia cư thằng thứ tư. Khi xác định được vị trí rồi thì dùng hàm LEFT cắt là xong. Ví dụ ô A1 là ô có chuỗi ban đầu, ô kết quả ta dùng công thức:

=LEFT(A1,FIND("-",A1,FIND("-",A1,FIND("-",A1,FIND("-",A1,1)+1)+1)+1)-1)


Hì, có kết quả thật nhưng loằng ngoằng làm sao ấy.
 
Chốt đinh có 4 cái gạch ngang nhưng mỗi nhóm lại không cố định số ký tự thì trước khi mọi người có cao kiến, mình lồng 4 thằng FIND là tìm chắc gia cư thằng thứ tư. Khi xác định được vị trí rồi thì dùng hàm LEFT cắt là xong. Ví dụ ô A1 là ô có chuỗi ban đầu, ô kết quả ta dùng công thức:

=LEFT(A1,FIND("-",A1,FIND("-",A1,FIND("-",A1,FIND("-",A1,1)+1)+1)+1)-1)


Hì, có kết quả thật nhưng loằng ngoằng làm sao ấy.
Nếu dùng VBA thì chỉ cần dùng hàm InstrRev một phát là ra ngay dấu "-" cuối cùng nó nằm ở đâu. Vấn đề còn lại thì không có gì phức tạp nữa.
 
Chốt đinh có 4 cái gạch ngang nhưng mỗi nhóm lại không cố định số ký tự thì trước khi mọi người có cao kiến, mình lồng 4 thằng FIND là tìm chắc gia cư thằng thứ tư. Khi xác định được vị trí rồi thì dùng hàm LEFT cắt là xong. Ví dụ ô A1 là ô có chuỗi ban đầu, ô kết quả ta dùng công thức:

=LEFT(A1,FIND("-",A1,FIND("-",A1,FIND("-",A1,FIND("-",A1,1)+1)+1)+1)-1)


Hì, có kết quả thật nhưng loằng ngoằng làm sao ấy.
Đúng là loằng ngoằng thật
Nếu chốt được 4 thằng gạch ngang ta có thể làm thế này cho đỡ......"loằng ngoằng làm sao ấy"
=LEFT(A1,FIND("@",SUBSTITUTE(A1,"-","@",4))-1)
Trong đó @ là ký tự nào đó mà trong dữ liệu hông có nó
Híc
 
Nếu dùng VBA thì chỉ cần dùng hàm InstrRev một phát là ra ngay dấu "-" cuối cùng nó nằm ở đâu. Vấn đề còn lại thì không có gì phức tạp nữa.

Đúng vậy, nhưng với yêu cầu này trước hết ta sử dụng cái sẵn có vì sử dung VBA nó đi hơi xa 1 chút . "Good macro is no macro". (Anh Hiếu khi còn sống dùng chữ ký này.)
Mình thấy còn 1 cách nếu dữ liệu lớn ta dùng chiêu Text to Column (Mình nói tỷ mỷ 1 chút để hướng dẫn bạn ấy luôn)

1/Chọn cột dữ liệu cần tách.
2/Vào menu Data---Text to Column
-Trong hộp thoại đầu tiên chọn Delimited rồi bấm Next.
-Trong hộp thoại tiếp: Bỏ hết dấu kiểm ở các ô chỉ chọn Other và ô bên cạnh nhập dấu trừ.---Next.
-Trong hộp tiếp tại ô Destination: Gõ hay chọn vị trí đầu tiên dữ liệu sẽ tách ra. Dữ liệu của bạn sẽ tách thành 5 cột vì có 4 dấu "-". Nhấn Finish.

Giờ thì bạn có thể tự nối 4 cột đầu để có kết quả.
 
Lần chỉnh sửa cuối:
Bạn thử dùng công thức này xem sao

=TRIM(LEFT(SUBSTITUTE(A1,"-",REPT(" ",10000),4),5000))

Cái số 4 là tham số xác định muốn cắt từ trái quá đến cái dấu "-" thứ mấy đó nha bạn.
 
Lần chỉnh sửa cuối:
Cho em xin tham gia 1 bài:
Dùng công thức mảng chắc sẽ giải quyết được nhiều điều hơn là chỉ cắt từ ký tự "-" cuối cùng.
Công thức này sẽ cắt được từ ký tự "-" bất kỳ trong chuỗi chỉ cần tùy biến 1 chút
=MID(L2,LARGE(IF(MID(L2,ROW(INDIRECT("1:"&LEN(L2))),1)="-",ROW(INDIRECT("1:"&LEN(L2))),0),1)+1,LEN(L2)-LARGE(IF(MID(L2,ROW(INDIRECT("1:"&LEN(L2))),1)="-",ROW(INDIRECT("1:"&LEN(L2))),0),1))
 
Cho mình hỏi riêng 1 chút giải pháp nào để cắt 1 chử cuối cùng trong 1 chuổi vd: ta có bất kỳ "Thành Phố Hồ Chí Minh" thì làm sao lấy được chử cuối cùng là chử "Minh" dĩ nhiên nếu đánh cụm chử khác mà chử cuối cùng vd là Thu hay Nguyễn .v.v.v. tức là làm sao lấy được chử cuối cùng bất kỳ. Xin thành thật cảm ơn các anh chị giúp đở
 
Cho mình hỏi riêng 1 chút giải pháp nào để cắt 1 chử cuối cùng trong 1 chuổi vd: ta có bất kỳ "Thành Phố Hồ Chí Minh" thì làm sao lấy được chử cuối cùng là chử "Minh" dĩ nhiên nếu đánh cụm chử khác mà chử cuối cùng vd là Thu hay Nguyễn .v.v.v. tức là làm sao lấy được chử cuối cùng bất kỳ. Xin thành thật cảm ơn các anh chị giúp đở

vấn đề bạn hỏi hơi chung chung, thông thường tách chuỗi phải có mục đích rõ ràng phụ thuộc vào dữ liệu hay yêu cầu cụ thể của đề bài, ví dụ trường hợp của bạn như chuỗi ký tự Thành Phố Hồ Chí Minh bạn muốn lấy chữ "Minh" thì bạn có thể sử dụng hàm RIGHT(A1,4), còn nếu trường hợp bạn muốn lấy chữ "Chí" có thể dùng hàm Mid.
 
Cho mình hỏi riêng 1 chút giải pháp nào để cắt 1 chử cuối cùng trong 1 chuổi vd: ta có bất kỳ "Thành Phố Hồ Chí Minh" thì làm sao lấy được chử cuối cùng là chử "Minh" dĩ nhiên nếu đánh cụm chử khác mà chử cuối cùng vd là Thu hay Nguyễn .v.v.v. tức là làm sao lấy được chử cuối cùng bất kỳ. Xin thành thật cảm ơn các anh chị giúp đở

Đây là bài toán CẮT LẤY TÊN
Đơn giản thế này thôi:
Mã:
=TRIM(RIGHT(SUBSTITUTE(TRIM(A1), " ", REPT(" ",1000)),1000))
vấn đề bạn hỏi hơi chung chung, thông thường tách chuỗi phải có mục đích rõ ràng phụ thuộc vào dữ liệu hay yêu cầu cụ thể của đề bài, ví dụ trường hợp của bạn như chuỗi ký tự Thành Phố Hồ Chí Minh bạn muốn lấy chữ "Minh" thì bạn có thể sử dụng hàm RIGHT(A1,4), còn nếu trường hợp bạn muốn lấy chữ "Chí" có thể dùng hàm Mid.
RIGHT thì đúng rồi, nhưng ai biết độ dài của từ là bao nhiên mà ghi là 4
 
Đây là bài toán CẮT LẤY TÊN
Đơn giản thế này thôi:
Mã:
=TRIM(RIGHT(SUBSTITUTE(TRIM(A1), " ", REPT(" ",1000)),1000))

RIGHT thì đúng rồi, nhưng ai biết độ dài của từ là bao nhiên mà ghi là 4

thì em tách chuỗi ví dụ cụ thể đó mà, hì hì, em hiểu rồi .
 
Web KT

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

Back
Top Bottom