Cách trích xuất 7 giá trị số cuối cùng trong chuỗi ký tự chữ và số


1

Tôi cần trích xuất 7 giá trị số cuối cùng (không phải ký tự) từ một chuỗi trong một ô excel. Chuỗi chứa một tên tệp (có thể là hỗn hợp của các chữ cái, số và dấu gạch ngang) và sau đó 7 số cần được chuyển sang cột khác.

ví dụ Johnson Set1- 0 0 1 14 9 54 0

Các giá trị số thay đổi từ 0 đến 999, do đó không thể trích xuất 7 ký tự cuối cùng.


Là chuỗi con được trích xuất luôn đi trước dấu gạch ngang (-)? Đây có phải luôn luôn là dấu gạch ngang DUY NHẤT trong chuỗi?
XOR LX

Câu trả lời:


1

Vì vậy, có một vài thủ thuật bạn có thể sử dụng để có được những gì bạn muốn. Tôi sẽ làm hết sức mình để giải thích chúng ở đây và sau đó cung cấp cho bạn một công thức sử dụng các thủ thuật này để cung cấp cho bạn muốn bạn muốn.

Điều quan trọng là tìm khoảng trống trước khi danh sách các số bắt đầu. Nếu ví dụ của bạn đủ chung, không gian này sẽ luôn là không gian thứ 7 từ bên phải. Vấn đề là thứ 7 từ bên phải có thể là bất kỳ không gian số nào từ bên trái vì có vẻ như không có quy tắc nào về tên tệp có số lượng khoảng trắng được đặt. Và SUBSTITUTEhàm cho phép bạn chỉ định trường hợp nào (từ bên trái) của chuỗi cần thay thế.

Để có được khoảng trống thứ 7 từ bên phải, chúng ta phải dịch nó thành khoảng trắng từ bên trái. Để làm điều này, chúng ta cần biết số lượng khoảng trắng trong toàn bộ chuỗi. Một khi chúng ta có điều đó, đó chỉ là vấn đề trừ.

Để tìm tổng số khoảng trắng trong chuỗi, có một mẹo sử dụng hàm SUBSTITUTELENhàm. Ý tưởng là thay thế tất cả các khoảng trắng trong chuỗi bằng không có gì và sau đó so sánh độ dài của đầu ra với độ dài của chuỗi gốc. Sự khác biệt tất nhiên là số lượng khoảng trắng trong chuỗi gốc. Vì vậy, đối với một chuỗi trong A1, sau đây sẽ trả về số lượng khoảng trắng:

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

Vì vậy, số lượng không gian từ bên trái bạn muốn sẽ luôn có thêm 6 khoảng trắng ở bên trái.

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

Bây giờ, vấn đề tiếp theo là chỉ SUBSTITUTEcho phép bạn chỉ định số hiệu bạn muốn thay đổi. FIND, sẽ thuận tiện nhất cho việc trích xuất các số, không có tính năng này. Thủ thuật sau đó là sử dụng SUBSTITUTEđể tạo một chuỗi cho phép bạn sử dụng FINDnhư bạn muốn. Nếu bạn thay thế không gian thứ 7 từ bên phải bằng một chuỗi không xảy ra ở bất kỳ nơi nào khác trong chuỗi, bạn có một chuỗi con duy nhất để tìm kiếm. Vì vậy, ví dụ, bạn có thể sử dụng cách sau để thay thế không gian mong muốn bằng "REPLACE! ME":

=SUBSTITUTE(A1," ","REPLACE!ME",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-6)

Bây giờ, bạn chỉ cần tìm chỉ mục "REPLACE! ME" trong chuỗi và trả mọi thứ về đúng vị trí của nó. Điều này có thể được thực hiện với sự RIGHT, LENFINDcác chức năng. Các chức năng cuối cùng là loại lặp đi lặp lại, nhưng nó hoàn thành công việc.

 =RIGHT(SUBSTITUTE(A1," ","REPLACE!ME",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-6),LEN(SUBSTITUTE(A1," ","REPLACE!ME",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-6))-FIND("REPLACE!ME",SUBSTITUTE(A1," ","REPLACE!ME",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-6))-LEN("REPLACE!ME")+1)

Tôi đã sử dụng công thức bạn cung cấp nhưng không có gì xảy ra - tôi có thiếu thứ gì không?
Rachel

Bạn đã cập nhật tham chiếu ô từ A1 thành bất kỳ ô nào giữ chuỗi của bạn chưa? Bạn sẽ cần thay đổi tất cả các phiên bản của A1.
Xuất sắc

Xin chào Excellll, vâng tôi đã thay đổi tham chiếu ô nhưng tôi vẫn không nhận được gì. Bất kỳ đề nghị thêm ??
Rachel

Bạn có ý nghĩa gì khi "không nhận được bất cứ điều gì"? Nó trở về cái gì?
Xuất sắc
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.