Công thức Excel: Bỏ từ cuối cùng -

Mục lục

Công thức chung

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

Tóm lược

Để xóa từ cuối cùng khỏi chuỗi văn bản, bạn có thể sử dụng công thức dựa trên hàm MID, với sự trợ giúp từ SUBSTITUTE, LEN và FIND. Trong ví dụ được hiển thị, công thức trong ô B5 là:

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

Giải trình

Công thức này sử dụng hàm MID để xóa từ cuối cùng khỏi chuỗi văn bản. Thách thức chính là tìm ra từ cuối cùng bắt đầu từ đâu.

Công thức hơi phức tạp nhưng các bước thực hiện rất đơn giản. Đầu tiên chúng ta đếm xem có bao nhiêu khoảng trắng tồn tại trong văn bản bằng cách sử dụng LEN và SUBSTITUTE. Tiếp theo, chúng ta sử dụng đối số "instance" hơi tối nghĩa trong hàm SUBSTITUTE để thay thế khoảng trắng cuối cùng bằng dấu ngã (~). Cuối cùng, chúng tôi sử dụng FIND để tìm ra vị trí của dấu ngã và hàm MID để loại bỏ mọi thứ sau dấu ngã.

Làm việc từ trong ra ngoài, chúng tôi sử dụng các hàm LEN và SUBSTITUTE để đếm có bao nhiêu khoảng trắng xuất hiện trong phần tiếp theo:

LEN(B5)-LEN(SUBSTITUTE(B5," ","")) // returns 6

Đối với văn bản trong B5, nó trả về 6. Trang này giải thích chi tiết hơn phần này của công thức. Điều này cho chúng ta biết chúng ta muốn cắt văn bản ở ký tự khoảng trắng thứ 6.

Lưu ý: nếu các từ được phân tách bằng nhiều hơn một dấu cách, trước tiên bạn sẽ muốn chuẩn hóa dấu cách bằng hàm TRIM.

Số 6 sau đó được cắm vào SUBSTITUTE khác làm "số phiên bản":

SUBSTITUTE(B5," ","~",6) // insert tilde

Ở đây, chúng tôi thay thế thể hiện thứ 6 của dấu cách ("") bằng dấu ngã (~). Sau khi SUBSTITUTE chạy, nó trả về chuỗi này:

"It's been seven hours and fifteen~days"

Lưu ý: chúng tôi chỉ sử dụng dấu ngã (~) vì nó là một ký tự hiếm khi xuất hiện. Bạn có thể sử dụng bất kỳ ký tự nào bạn thích, miễn là nó không xuất hiện trong văn bản nguồn.

Tiếp theo, chúng ta sử dụng hàm FIND để định vị dấu ngã:

FIND("~","It's been seven hours and fifteen~days")-1

FIND trả về 34, vì dấu ngã là ký tự thứ 34. Chúng tôi trừ 1 từ con số này, vì chúng tôi không muốn bao gồm khoảng trắng cuối cùng trong kết quả cuối cùng. Bây giờ chúng ta có thể đơn giản hóa công thức thành:

=MID(B5,1,33) // extract final text

Sau đó, hàm MID trả về các ký tự 1-33:

"It's been seven hours and fifteen"

Với dấu phân cách tùy chỉnh

Có thể sử dụng cùng một công thức với một dấu phân cách khác. Ví dụ: để xóa tất cả văn bản sau dấu gạch chéo cuối cùng "/", bạn có thể sử dụng:

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

Xóa n từ cuối cùng

Bạn có thể điều chỉnh công thức để loại bỏ 2 từ cuối cùng, 3 từ cuối cùng, v.v. Dạng chung là:

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

trong đó d là dấu phân cách và n là số từ cần loại bỏ.

thú vị bài viết...