Công thức Excel: Trích xuất hai từ cuối cùng từ ô -

Mục lục

Công thức chung

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

Tóm lược

Để trích xuất hai từ cuối cùng từ một ô, bạn có thể sử dụng công thức được xây dựng bằng một số hàm Excel, bao gồm MID, FIND, SUBSTITUTE và LEN. Trong ví dụ được hiển thị, công thức trong C5 là:

=MID(B5,FIND("@",SUBSTITUTE(B5," ","@",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-1))+1,100)

Giải trình

Về cơ bản, công thức này sử dụng hàm MID để trích xuất các ký tự bắt đầu từ dấu cách thứ hai đến cuối cùng. Hàm MID nhận 3 đối số: văn bản cần làm việc, vị trí bắt đầu và số ký tự cần trích xuất.

Văn bản đến từ cột B và số lượng ký tự có thể là bất kỳ số lớn nào sẽ đảm bảo hai từ cuối cùng được trích xuất. Thử thách là xác định vị trí bắt đầu, ngay sau khoảng trống thứ hai đến cuối cùng. Công việc thông minh được thực hiện chủ yếu với hàm SUBSTITUTE, có một đối số tùy chọn được gọi là số phiên bản. Tính năng này được sử dụng để thay thế khoảng trắng thứ hai đến cuối cùng trong văn bản bằng ký tự "@", ký tự này sau đó được đặt cùng với hàm FIND.

Làm việc từ trong ra ngoài, đoạn mã dưới đây tính toán tổng số khoảng trắng trong văn bản, từ đó trừ đi 1.

LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-1

Trong ví dụ được hiển thị, có 5 khoảng trắng trong văn bản, vì vậy đoạn mã trên trả về 4. Số này được đưa vào hàm SUBSTITUTE bên ngoài dưới dạng số cá thể:

SUBSTITUTE(B5," ","@",4)

Điều này khiến SUBSTITUTE thay thế ký tự khoảng trắng thứ tư bằng "@". Việc lựa chọn @ là tùy ý. Bạn có thể sử dụng bất kỳ ký tự nào sẽ không xuất hiện trong văn bản gốc.

Tiếp theo, FIND định vị ký tự "@" trong văn bản:

FIND("@","A stitch in time@saves nine")

Kết quả của FIND là 17, trong đó 1 được thêm vào để có 18. Đây là vị trí bắt đầu và đi vào hàm MID làm đối số thứ hai. Để đơn giản, số ký tự cần trích xuất được mã hóa cứng là 100. Con số này là tùy ý và có thể được điều chỉnh để phù hợp với tình hình.

Trích xuất N từ cuối cùng từ ô

Công thức này có thể được tổng quát hóa để trích xuất N từ cuối cùng từ một ô bằng cách thay thế mã cứng 1 trong ví dụ bằng (N-1). Ngoài ra, nếu bạn đang trích xuất nhiều từ, bạn có thể muốn thay thế đối số được mã hóa cứng trong MID, 100, bằng một số lớn hơn. Để đảm bảo số lượng đủ lớn, bạn chỉ cần sử dụng hàm LEN như sau:

=MID(B5,FIND("@",SUBSTITUTE(B5," ","@",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-(N-1)))+1,LEN(B5))

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