Sử dụng các toán tử cho số học đơn giản 4M 44S
Tạo cơ sở dữ liệu mới 3M 2s
Đây là hai giá trị trong hai ô Excel.
Tôi muốn loại bỏ hai từ cuối cùng, nghĩa là 4M 44S khỏi mọi ô để đầu ra phải:
Sử dụng các toán tử cho số học đơn giản
Tạo cơ sở dữ liệu mới
=LEFT[A1,FIND[CHAR[1],SUBSTITUTE[A1," ",CHAR[1],LEN[A1]-LEN[SUBSTITUTE[A1," ",""]]-1]]]
Nhưng chức năng này chỉ loại bỏ từ cuối. Làm cách nào để loại bỏ hai từ cuối cùng khỏi mỗi ô?
Hỏi ngày 28 tháng 8 năm 2012 lúc 4:48Aug 28, 2012 at 4:48
1
Có lẽ bạn có một không gian dấu vết trong văn bản của bạn bởi vì Excellll nói rằng nó sẽ hoạt động khác. Hãy thử thêm vào một số chức năng
=LEFT[A1,FIND["@@REPLACE@@",SUBSTITUTE[TRIM[A1]," ","@@REPLACE@@",LEN[TRIM[A1]]-LEN[SUBSTITUTE[TRIM[A1]," ",""]]-1]]-1]
0 để loại bỏ các không gian theo dõi [=LEFT[A1,FIND["@@REPLACE@@",SUBSTITUTE[TRIM[A1]," ","@@REPLACE@@",LEN[TRIM[A1]]-LEN[SUBSTITUTE[TRIM[A1]," ",""]]-1]]-1]
0 cũng sẽ loại bỏ bất kỳ không gian hàng đầu nào và tạo bất kỳ không gian bên trong kép nào vào không gian đơn lẻ ..... nhưng tôi cho rằng đó sẽ không phải là vấn đề?]=LEFT[A1,FIND["@@REPLACE@@",SUBSTITUTE[TRIM[A1]," ","@@REPLACE@@",LEN[TRIM[A1]]-LEN[SUBSTITUTE[TRIM[A1]," ",""]]-1]]-1]
2Hoặc đây là một cách khác [ngắn hơn],
=LEFT[A1,FIND["@@REPLACE@@",SUBSTITUTE[TRIM[A1]," ","@@REPLACE@@",LEN[TRIM[A1]]-LEN[SUBSTITUTE[TRIM[A1]," ",""]]-1]]-1]
3Đã trả lời ngày 28 tháng 8 năm 2012 lúc 18:01Aug 28, 2012 at 18:01
Barry Houdinibarry Houdinibarry houdini
10,8K1 Huy hiệu vàng19 Huy hiệu bạc25 Huy hiệu đồng1 gold badge19 silver badges25 bronze badges
Đây là một công thức sẽ làm điều đó. Nó hơi dài, nhưng nó sẽ làm được điều đó:
=LEFT[A1,FIND["@@REPLACE@@",SUBSTITUTE[TRIM[A1]," ","@@REPLACE@@",LEN[TRIM[A1]]-LEN[SUBSTITUTE[TRIM[A1]," ",""]]-1]]-1]
Công thức hoạt động bằng cách sử dụng chức năng
=LEFT[A1,FIND["@@REPLACE@@",SUBSTITUTE[TRIM[A1]," ","@@REPLACE@@",LEN[TRIM[A1]]-LEN[SUBSTITUTE[TRIM[A1]," ",""]]-1]]-1]
4 để thay thế không gian tiếp theo với một số văn bản thay thế tối nghĩa không có khả năng được tìm thấy ở bất kỳ nơi nào khác trong văn bản ["@@ thay thế @@" trong ví dụ]. Sau đó, hàm =LEFT[A1,FIND["@@REPLACE@@",SUBSTITUTE[TRIM[A1]," ","@@REPLACE@@",LEN[TRIM[A1]]-LEN[SUBSTITUTE[TRIM[A1]," ",""]]-1]]-1]
5 có thể trả lại mọi thứ ở bên trái của văn bản thay thế. Lý do để thực hiện theo cách này là vì =LEFT[A1,FIND["@@REPLACE@@",SUBSTITUTE[TRIM[A1]," ","@@REPLACE@@",LEN[TRIM[A1]]-LEN[SUBSTITUTE[TRIM[A1]," ",""]]-1]]-1]
6 không cho phép bạn chỉ định một thể hiện của một không gian, mà là một vị trí bắt đầu, không hữu ích trong trường hợp này. =LEFT[A1,FIND["@@REPLACE@@",SUBSTITUTE[TRIM[A1]," ","@@REPLACE@@",LEN[TRIM[A1]]-LEN[SUBSTITUTE[TRIM[A1]," ",""]]-1]]-1]
4 Tuy nhiên, cho phép bạn chỉ định số trường hợp của không gian, vì vậy đó là lý do tại sao nó được sử dụng.Mong đợi một lỗi sẽ được trả về cho văn bản với hai hoặc ít từ hơn.
Đã trả lời ngày 28 tháng 8 năm 2012 lúc 13:28Aug 28, 2012 at 13:28
ExcellLlexCellllExcellll
12.5K11 Huy hiệu vàng50 Huy hiệu bạc78 Huy hiệu đồng11 gold badges50 silver badges78 bronze badges
Công thức này sử dụng hàm giữa để 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.
Công thức là một chút phức tạp, nhưng các bước rất đơn giản. Trước tiên chúng tôi đếm có bao nhiêu không gian tồn tại trong văn bản bằng LEN và thay thế. Tiếp theo, chúng tôi sử dụng đối số hơi khó hiểu & NBSP; đối số trong hàm thay thế để thay thế không gian cuối cùng bằng một tilde [~]. Cuối cùng, chúng tôi sử dụng tìm kiếm để tìm ra vị trí của Tilde và hàm giữa để loại bỏ mọi thứ sau Tilde.
Làm việc từ trong ra ngoài, chúng tôi sử dụng các hàm thay thế và thay thế để đếm số lượng không gian xuất hiện trong lần tiếp theo:
LEN[B5]-LEN[SUBSTITUTE[B5," ",""]] // returns 6
Đối với văn bản trong B5, điều này trả về 6. Trang này giải thích phần này của công thức chi tiết hơn. Điều này cho chúng tôi biết chúng tôi muốn cắt văn bản ở ký tự không gian thứ 6.
Lưu ý: Nếu các từ được phân tách bởi nhiều hơn một không gian, bạn sẽ muốn bình thường hóa các khoảng trống trước với hàm trang trí.
Số 6 sau đó được cắm vào một thay thế khác dưới dạng "số phiên bản":
SUBSTITUTE[B5," ","~",6] // insert tilde
Ở đây, chúng tôi là & nbsp; thay thế & nbsp; phiên bản thứ 6 của một không gian [""] bằng một tilde [~]. Sau khi chạy thay thế, nó trả về chuỗi này:
"It's been seven hours and fifteen~days"
Lưu ý: Chúng tôi sử dụng một tilde [~] chỉ vì đó là một nhân vật hiếm khi xảy ra. 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 tôi sử dụng chức năng Tìm để xác định vị trí Tilde:
FIND["~","It's been seven hours and fifteen~days"]-1
Tìm trả về 34, vì Tilde là ký tự thứ 34. Chúng tôi trừ 1 từ số này, vì chúng tôi không muốn đưa không gian cuối cùng vào 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
Hàm MID sau đó trả về các ký tự 1-33:
"It's been seven hours and fifteen"
Với một dấu phân cách tùy chỉnh
Công thức tương tự có thể được sử dụng với một dấu phân cách khác. Ví dụ: để xóa tất cả văn bản sau khi chém chuyển tiếp 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, 3 từ cuối cùng, v.v ... Hình thức 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ố lượng từ để xóa.d is the delimiter, and n is the number of words to remove.