Nhờ forum tách chuỗi ký tứ

Liên hệ QC

ngtchung

Thành viên mới
Tham gia
11/10/08
Bài viết
48
Được thích
19
Chào cả nhà
Hiện trong công việc mình đang muốn tách 1 chuổi có chiều dài bất kỳ như sau:
2"-FG-086-1026-A1AD-STL
Mình chỉ muốn lấy chuỗi A1AD nhưng lại có chiều dài thay đổi từ 3-5 ký tự và phần STL cũng không cố định (2-3 ký tự) nên chưa bít làm cách nào để lấy hết nội dung nên nhờ diễn đàn tư vấn giúp??? Trân trọng cảm ơn

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau
 
Lần chỉnh sửa cuối:
bạn đưa file cụ thể (có nhiều dòng dữ liệu) lên đi
 
Chào cả nhà
Hiện trong công việc mình đang muốn tách 1 chuổi có chiều dài bất kỳ như sau:
2"-FG-086-1026-A1AD-STL
Mình chỉ muốn lấy chuỗi A1AD nhưng lại có chiều dài thay đổi từ 3-5 ký tự và phần STL cũng không cố định (2-3 ký tự) nên chưa bít làm cách nào để lấy hết nội dung nên nhờ diễn đàn tư vấn giúp??? Trân trọng cảm ơn


Muốn làm được phải tìm được qui luật nào đó, chứ không có qui luật nào thì không ra được.
Đưa file có kha khá dữ liệu lên để tìm qui luật chứ có 1 dòng dữ liệu thì sao mà làm được.
 
gửi mọi người file đính kèm

Nếu quy luật là lấy chuỗi bắt đầu từ sau dấu "-" thứ 4 và lấy đến khi nào gặp dấu "-" thì dừng lại. Thì

bạn dùng thử CT này tại ô B2 : =TRIM(MID(SUBSTITUTE(A2,"-",REPT(" ",100)),400,100))
 
Lần chỉnh sửa cuối:
Bạn thử xem có đúng ý bạn không ?
 

File đính kèm

  • tach chuoi line.xlsx
    8.4 KB · Đọc: 20
Nếu quy luật là lấy chuỗi bắt đầu từ sau dấu "-" thứ 4 và lấy đến khi nào gặp dấu "-" thì dừng lại. Thì

bạn dùng thử CT này tại ô B2 : =TRIM(MID(SUBSTITUTE(A2,"-",REPT(" ",100)),400,100))

Đúng chuẩn bài toán tách tên! Học hỏi nhanh ghê hen
Nhưng mà nhớ hôm trước đồng chí nói mấy con số 100, 400 đó là thiếu chính xác mà. Vậy sao không thay bằng LEN(...)
Ẹc... Ẹc...
 
gửi mọi người file đính kèm

Để đề phòng trường hợp chuỗi cần lấy của bạn có độ dài vượt quá 100 ký tự bạn thay các sô 100 thành Len(A2) và 400 thành 4*Len(A2) nhé.

Đúng chuẩn bài toán tách tên! Học hỏi nhanh ghê hen
Nhưng mà nhớ hôm trước đồng chí nói mấy con số 100, 400 đó là thiếu chính xác mà. Vậy sao không thay bằng LEN(...)
Ẹc... Ẹc...
Hi hi ! -\\/. -0-/. --=0
 
mấy năm trước khi lần đầu tiên mình dùng công thức này . mình làm theo đúng định nghĩa về họ tên tiếng Việt => chỉ có 7 khoảng trắng
thế mà hàm vẫn chạy đúng 1 thời gian dài đấy chứ . nghĩ lại cũng vui
 
Lần chỉnh sửa cuối:
Nếu quy luật là lấy chuỗi bắt đầu từ sau dấu "-" thứ 4 và lấy đến khi nào gặp dấu "-" thì dừng lại. Thì

bạn dùng thử CT này tại ô B2 : =TRIM(MID(SUBSTITUTE(A2,"-",REPT(" ",100)),400,100))
Cảm ơn các bạn nhiều, nhưng bạn giải thích mình thêm về công thức được ko bạn?? để sau nay vận dụng cho các trường hợp khác??

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau
 
Lần chỉnh sửa cuối:
Cảm ơn các bạn nhiều, nhưng bạn giải thích mình thêm về công thức được ko bạn?? để sau nay vận dụng cho các trường hợp khác??

Mình nói theo ý hiểu của mình:

Trong Excel có hàm TRIM dùng để loại bỏ các khoảng trắng thừa ở vị trí đầu và cuối chuỗi. Lợi dụng đặc tính đó của nó, khi làm các bài

tập cắt 1 cụm từ trong 1 chuỗi theo 1 quy luật nào đó, đầu tiên ta thường dùng hàm SUBSTITUTE(REPT(" " , n),"-") để thay n ký tự khoảng trắng

thay cho ký tự nào đó ( mình lấy luôn như ví dụ của bạn là thay cho dấu "-" ). Sau đó thì dựa vào từng trường hợp hay quy luật cụ thể ta dùng 1 trong các hàm MID, LEFT

RIGHT (như của bạn lấy ở giữa ta dùng hàm MID) cắt ra phần cần lấy. Rồi sau đó đặt hàm TRIM bên ngoài như đã nói để bỏ bớt các khoảng trắng thừa đi

Con số n kia bạn có thể thay bằng Len(chuoi ban đầu) hoặc cho n là 1 con số cụ thể nào đó (100,200,10000...) sao cho n lớn hơn độ dài phần bạn cần lấy ra là được
 
Lần chỉnh sửa cuối:
Mình nói theo ý hiểu của mình:

Trong Excel có hàm TRIM dùng để loại bỏ các khoảng trắng thừa ở vị trí đầu và cuối chuỗi. Lợi dụng đặc tính đó của nó, khi làm các bài

tập cắt 1 cụm từ trong 1 chuỗi theo 1 quy luật nào đó, đầu tiên ta thường dùng hàm SUBSTITUTE(REPT(" " , n),"-") để thay n ký tự khoảng trắng

thay cho ký tự nào đó ( mình lấy luôn như ví dụ của bạn là thay cho dấu "-" ). Sau đó thì dựa vào từng trường hợp hay quy luật cụ thể ta dùng 1 trong các hàm MID, LEFT

RIGHT (như của bạn lấy ở giữa ta dùng hàm MID) cắt ra phần cần lấy. Rồi sau đó đặt hàm TRIM bên ngoài như đã nói để bỏ bớt các khoảng trắng thừa đi

Con số n kia bạn có thể thay bằng Len(chuoi ban đầu) hoặc cho n là 1 con số cụ thể nào đó (100,200,10000...) sao cho n lớn hơn độ dài phần bạn cần lấy ra là được
Có chỗ này mình không hiểu trong công thức của bạn, nhờ bạn giải thích giúp nhé :"|". Đây là ký tự gì ?
 
Có chỗ này mình không hiểu trong công thức của bạn, nhờ bạn giải thích giúp nhé :"|". Đây là ký tự gì ?
Chắc bạn đang nói đến công thức ở bài 6 chăng?
Vậy thì xin thưa rằng: Không nhất thiết phải là "|", bạn dùng bất cứ ký tự gì, miễn là nó thật "lạ" để không trùng với bất cứ ký tự nào trong văn bản của bạn là được
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom