Tách ô Excel theo dấu phân cách cuối


3

Tôi cần chia một ô theo dấu phân cách đầu tiên (đọc từ phải sang trái) để tôi có thể đặt giá trị đó vào một ô khác.

Ví dụ: dữ liệu của tôi trong ô A1 có thể trông như sau:

"something - more something - a lot more of something - (this is the text I need)"

Ô B1 cần giá trị "(đây là văn bản tôi cần)"

cho đến nay những gì tôi có là:

=RIGHT(a1,LEN(FIND(RIGHT("-"),a1)))

nhưng điều này dường như chỉ trả về char cuối cùng: ")".


Bạn có biết có bao nhiêu dấu phân cách có thể có? Hoặc có thể có bất kỳ số nào?
paulmorriss

Câu trả lời:


5

Bạn cần công thức này:

=MID(A1,FIND("~~~~~",SUBSTITUTE(A1,"-","~~~~~",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1,LEN(A1))

Phá vỡ:

LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))

Đếm số lần "-" xảy ra trong ô,

SUBSTITUTE(A1,"-","~~~~~",LEN(A1)-LEN(SUBSTITUTE(A1,"-","")))

Sau đó thay thế lần xuất hiện cuối cùng của "-" bằng "~~~~~". Nếu "~~~~~" có khả năng xảy ra bình thường trong đầu vào của bạn, hãy sử dụng một giá trị khác ở đây.

FIND("~~~~~",SUBSTITUTE(A1,"-","~~~~~",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1

Tìm vị trí của "~~~~~" mà chúng ta vừa tạo và thêm một vị trí để chúng ta bắt đầu ngay sau nó. Và cuối cùng, công thức đầy đủ sử dụng vị trí đó và MID() để trích xuất văn bản mong muốn.


cảm ơn bạn! Tôi cuối cùng đã tìm thấy câu trả lời tôi cần tại đây , nhưng lời giải thích của bạn thực sự giúp hiểu cách thức hoạt động của nó.
Just_Some_Guy


@Just_Some_Guy Tôi biết tôi đã thấy điều này trước đây trên đây, nhưng tìm kiếm đã không tìm thấy bất cứ điều gì. Tất nhiên, đó là trên SO!
Kyle

8

Cả hai cách trên đều có tác dụng, nhưng đây là thứ gì đó dễ tiêu hóa hơn một chút:

=TRIM(RIGHT(SUBSTITUTE(A1,"-",REPT(" ",LEN(A1))),LEN(A1)))

Những công việc này. Nó sẽ hữu ích hơn nếu bạn giải thích nó.
User15

@David: Đây là suy nghĩ rất tốt.
CFreitas

1
Giống như kết quả của bạn, tốt nhất là diễn giải từ phải sang trái. Mỗi phiên bản của dấu phân cách '-' được thay thế bằng các khoảng trắng bằng số với toàn bộ ô ban đầu, trong khi vẫn giữ mọi thứ ở bên phải của ngăn cách cuối '-'. Điều này có nghĩa là bạn kết thúc với một chồng các khoảng trắng ở đầu phần tử dữ liệu cuối cùng, sau đó có thể được cắt bớt.
David Vernon

1

Hãy thử xem:

=TRIM(IF(ISERROR(FIND("-",A1)),"",MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1,255)))

enter image description here


Những công việc này. Nó sẽ hữu ích hơn nếu bạn giải thích nó.
User15
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.