Nhờ giúp tách ký tự trong mỗi ô có độ dài chuỗi khác nhau

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Houserobot

Thành viên mới
Tham gia
25/5/23
Bài viết
6
Được thích
0
Chào các ACE!

Nhờ các ACE thiết lặp giúp công thức tách chuỗi ký tự ở cột D2, E2, F2 trong chuỗi nguồn có độ dài khác nhau ở các ô tương ứng.
Đã tìm trên diễn đàn mà không thấy, mong các cao nhân giúp đỡ.
1710485495463.png

Cảm ơn nhiều
 

File đính kèm

  • tách chuỗi ký tự.xlsx
    9.5 KB · Đọc: 16
Chào các ACE!

Nhờ các ACE thiết lặp giúp công thức tách chuỗi ký tự ở cột D2, E2, F2 trong chuỗi nguồn có độ dài khác nhau ở các ô tương ứng.
Đã tìm trên diễn đàn mà không thấy, mong các cao nhân giúp đỡ.
View attachment 299624

Cảm ơn nhiều
Tôi giải một bài y hệt bài này của bạn ở bên dưới bài của bạn 2 bài mà sao mà bạn tìm kiểu gì mà không thấy???
 
Tôi giải một bài y hệt bài này của bạn ở bên dưới bài của bạn 2 bài mà sao mà bạn tìm kiểu gì mà không thấy???
Sorry bạn, trong bài đó mọi người đề cập đến VBA, mình thì không hiểu về mảng này. Vì vậy mới post lại nhờ mọi người xem qua giúp, có thể thiết lập công thức tương đối thôi cũng được.
 
Sorry bạn, trong bài đó mọi người đề cập đến VBA, mình thì không hiểu về mảng này. Vì vậy mới post lại nhờ mọi người xem qua giúp, có thể thiết lập công thức tương đối thôi cũng được.
Dạng bài của bạn tách tùm lum vậy ai mà viết công thức nổi, chỉ có thể giải bằng VBA hoặc Power Query thôi. Tôi đã giải bằng Power query, anh chị khác giải bằng VBA. Vì dạng nó y hệt như bài trước nếu mở rộng dữ liệu thì viết công thức sao nổi.
 
Dạng bài của bạn tách tùm lum vậy ai mà viết công thức nổi, chỉ có thể giải bằng VBA hoặc Power Query thôi. Tôi đã giải bằng Power query, anh chị khác giải bằng VBA. Vì dạng nó y hệt như bài trước nếu mở rộng dữ liệu thì viết công thức sao nổi.
Thank bạn đã góp ý, để mình tìm hiểu thêm về Power Query.
 
Chào các ACE!

Nhờ các ACE thiết lặp giúp công thức tách chuỗi ký tự ở cột D2, E2, F2 trong chuỗi nguồn có độ dài khác nhau ở các ô tương ứng.
Đã tìm trên diễn đàn mà không thấy, mong các cao nhân giúp đỡ.
View attachment 299624

Cảm ơn nhiều
Bạn dùng công thức sau
Mã:
Định lượng=VALUE(RIGHT(SUBSTITUTE(LEFT(C2,SEARCH("gsm/",C2)-1)," ",REPT(" ",20)),20))
Khổ cắt=VALUE(RIGHT(SUBSTITUTE(LEFT(C2,SEARCH("mm/",C2)-1),"/",REPT(" ",20)),20))
Dài=VALUE(LEFT(SUBSTITUTE(RIGHT(C2,LEN(C2)-SEARCH("mm/",C2)-2),"M",REPT(" ",20)),20))
Hoặc dùng E365
=REDUCE({"Định lượng","Khổ cắt","Dài"},MAP(C2:C4,LAMBDA(m,LET(t,TEXTSPLIT(m,," "),FILTER(t,IFERROR(FIND("GSM/",t),))))),LAMBDA(x,y,VSTACK(x,TEXTSPLIT(y,{"G","S","M","/"},,1))))
 
Cái bài trước đó nó định dạng tách ký tự tùm lum rất phức tạp, giống như dọn rác, còn nếu bài của bạn định dạng chỉ có giống như ba dòng trong file, thì bạn có thể dùng hàm sau:
=LET( Tensp, C2:C4, tachvitri1, FIND("GSM/", Tensp), Định_lượng,IFERROR(VALUE(RIGHT(SUBSTITUTE(LEFT(Tensp,SEARCH("GSM/",Tensp)-1)," ",REPT(" ",20)),20)),"Không tìm thấy định lượng"), Khocat_diemdau, tachvitri1 + 4, Khocat_diemcuoi, FIND("MM", Tensp, Khocat_diemdau), Khổ_cắt, IFERROR(VALUE(MID(Tensp, Khocat_diemdau, Khocat_diemcuoi - Khocat_diemdau)), "Không tìm thấy khổ cắt"), Dài_diemdau, Khocat_diemcuoi + 3, Dài_diemcuoi, FIND("M", Tensp, Dài_diemdau), Dài, IFERROR(VALUE(MID(Tensp, Dài_diemdau, Dài_diemcuoi - Dài_diemdau)), "Không tìm thấy chiều dài"), HSTACK(Định_lượng, Khổ_cắt, Dài) )

1710510130939.png
Hàm không phải thế mạnh của tôi, tôi mới học hàm 365 hôm nay là ngày thứ 2, cho nên hàm của bạn hocexcel_1991 ở trên tôi chưa hiểu được, chỉ làm dạng tuần tự như kiểu ghi từng bước thôi(tách từng cột 1).
Nếu nó có quá nhiều yếu tố cần tách thì nên chọn VBA hoặc Power Query hoặc python, để viết hàm giải quyết nhiều yếu tố thì chắc phải hiểu biết sâu về logic mới viết được.
 
Bạn dùng công thức sau
Mã:
Định lượng=VALUE(RIGHT(SUBSTITUTE(LEFT(C2,SEARCH("gsm/",C2)-1)," ",REPT(" ",20)),20))
Khổ cắt=VALUE(RIGHT(SUBSTITUTE(LEFT(C2,SEARCH("mm/",C2)-1),"/",REPT(" ",20)),20))
Dài=VALUE(LEFT(SUBSTITUTE(RIGHT(C2,LEN(C2)-SEARCH("mm/",C2)-2),"M",REPT(" ",20)),20))
Hoặc dùng E365
=REDUCE({"Định lượng","Khổ cắt","Dài"},MAP(C2:C4,LAMBDA(m,LET(t,TEXTSPLIT(m,," "),FILTER(t,IFERROR(FIND("GSM/",t),))))),LAMBDA(x,y,VSTACK(x,TEXTSPLIT(y,{"G","S","M","/"},,1))))
Cám ơn bạn đã hỗ trợ, công thức phần định lượng, khổ cắt thì cho kết quả đúng.
Còn công thức Dài=... khi cột C là "m thường" thì báo lỗi value, nhờ bạn xem qua giúp mình với.
Dài=VALUE(LEFT(SUBSTITUTE(RIGHT(C2,LEN(C2)-SEARCH("mm/",C2)-2),"M",REPT(" ",20)),20))
Bài đã được tự động gộp:

Cái bài trước đó nó định dạng tách ký tự tùm lum rất phức tạp, giống như dọn rác, còn nếu bài của bạn định dạng chỉ có giống như ba dòng trong file, thì bạn có thể dùng hàm sau:
=LET( Tensp, C2:C4, tachvitri1, FIND("GSM/", Tensp), Định_lượng,IFERROR(VALUE(RIGHT(SUBSTITUTE(LEFT(Tensp,SEARCH("GSM/",Tensp)-1)," ",REPT(" ",20)),20)),"Không tìm thấy định lượng"), Khocat_diemdau, tachvitri1 + 4, Khocat_diemcuoi, FIND("MM", Tensp, Khocat_diemdau), Khổ_cắt, IFERROR(VALUE(MID(Tensp, Khocat_diemdau, Khocat_diemcuoi - Khocat_diemdau)), "Không tìm thấy khổ cắt"), Dài_diemdau, Khocat_diemcuoi + 3, Dài_diemcuoi, FIND("M", Tensp, Dài_diemdau), Dài, IFERROR(VALUE(MID(Tensp, Dài_diemdau, Dài_diemcuoi - Dài_diemdau)), "Không tìm thấy chiều dài"), HSTACK(Định_lượng, Khổ_cắt, Dài) )

View attachment 299631
Hàm không phải thế mạnh của tôi, tôi mới học hàm 365 hôm nay là ngày thứ 2, cho nên hàm của bạn hocexcel_1991 ở trên tôi chưa hiểu được, chỉ làm dạng tuần tự như kiểu ghi từng bước thôi(tách từng cột 1).
Nếu nó có quá nhiều yếu tố cần tách thì nên chọn VBA hoặc Power Query hoặc python, để viết hàm giải quyết nhiều yếu tố thì chắc phải hiểu biết sâu về logic mới viết được.
Cám ơn bạn đã nhiệt tình giúp đỡ, mình sẽ tìm hiểu thêm vì mình cũng không rành về Hàm hay VBA nên có đôi chút khó khăn.
 
Lần chỉnh sửa cuối:
Cám ơn bạn đã hỗ trợ, công thức phần định lượng, khổ cắt thì cho kết quả đúng.
Còn công thức Dài=... khi cột C là "m thường" thì báo lỗi value, nhờ bạn xem qua giúp mình với.
Dài=VALUE(LEFT(SUBSTITUTE(RIGHT(C2,LEN(C2)-SEARCH("mm/",C2)-2),"M",REPT(" ",20)),20))
Bài đã được tự động gộp:


Cám ơn bạn đã nhiệt tình giúp đỡ, mình sẽ tìm hiểu thêm vì mình cũng không rành về Hàm hay VBA nên có đôi chút khó khăn.
Cám ơn bạn hocexcel_1991 mình đã khắc phục được rồi nhé.
 
Web KT
Back
Top Bottom