Cách lọc chuỗi ký tự có sẵn

Liên hệ QC

H.Huan

Thành viên mới
Tham gia
14/1/19
Bài viết
42
Được thích
6
Chào các bạn, xin hướng dẫn mình xử lý chuỗi bên dưới để ra kết quả như phần TÔ VÀNG. Xin cám ơn!
 

File đính kèm

  • CAUHOI.xlsx
    119.1 KB · Đọc: 23
Chào các bạn, xin hướng dẫn mình xử lý chuỗi bên dưới để ra kết quả như phần TÔ VÀNG. Xin cám ơn!
Bạn có thể cho thêm 10 dòng dữ liệu nữa không?
Tôi đã hiểu ý bạn nhưng file bạn mới có 2 dòng dữ liệu. Tôi e là chưa tìm được quy luật chung cho toàn bộ dữ liệu bạn đang cần xử lý !
 
Bạn có thể cho thêm 10 dòng dữ liệu nữa không?
Tôi đã hiểu ý bạn nhưng file bạn mới có 2 dòng dữ liệu. Tôi e là chưa tìm được quy luật chung cho toàn bộ dữ liệu bạn đang cần xử lý !

Cái khó ở đây là nó không có quy luật chung, có dòng thì nhiều text, có dòng lại ít text, nên mình cũng không biết phải làm sao để lọc mà không theo quy luật gì cả cho được đó bạn!
 
Cái khó ở đây là nó không có quy luật chung, có dòng thì nhiều text, có dòng lại ít text, nên mình cũng không biết phải làm sao để lọc mà không theo quy luật gì cả cho được đó bạn!
Bạn nói như vậy thì càng phải có càng nhiều dữ liệu càng tốt mới đúng chứ. Không có quy luật chung làm sao bạn viết 1 công thức xong rồi Fill cho nguyên cột hay nguyên dòng? Hay bạn định mỗi dữ liệu xử lý theo mỗi cách và 1 công thức riêng cho nó? Nếu như vậy thì chơi thủ công tự lọc còn nhanh hơn. :)
Bạn cứ upload lên file có dữ liệu để mọi người tìm quy luật chung giúp cho !

PS: nếu chỉ có 2 dòng dữ liệu như file ví dụ của bạn thì mọi người trên đây cũng sẽ giúp bạn theo 2 cách:
1. Viết công thức xử lý chỉ cho riêng 2 dòng dữ liệu này.
2. Đề xuất bạn dùng mắt thường để tự lọc tự gõ vào cho nhanh.
 
Bạn nói như vậy thì càng phải có càng nhiều dữ liệu càng tốt mới đúng chứ. Không có quy luật chung làm sao bạn viết 1 công thức xong rồi Fill cho nguyên cột hay nguyên dòng? Hay bạn định mỗi dữ liệu xử lý theo mỗi cách và 1 công thức riêng cho nó? Nếu như vậy thì chơi thủ công tự lọc còn nhanh hơn. :)
Bạn cứ upload lên file có dữ liệu để mọi người tìm quy luật chung giúp cho !

PS: nếu chỉ có 2 dòng dữ liệu như file ví dụ của bạn thì mọi người trên đây cũng sẽ giúp bạn theo 2 cách:
1. Viết công thức xử lý chỉ cho riêng 2 dòng dữ liệu này.
2. Đề xuất bạn dùng mắt thường để tự lọc tự gõ vào cho nhanh.

Bạn xem thêm dữ liệu nhé!
 

File đính kèm

  • CAUHOI.xlsx
    119.5 KB · Đọc: 29
Bạn xem thêm dữ liệu nhé!
Mình đã thấy bạn cho 7 dòng dữ liệu, 7 dòng kết quả minh họa. OK, mình đã hiểu.
Bài của bạn khá phức tạp (ít nhất là đối với mình). Nó có quy luật chung đấy chứ bạn. Tuy nhiên vẫn có dạng dữ liệu như vầy thì nó là ngoại lệ, rất khó khăn cho việc viết công thức chung để tách lọc nó ra:
YCCB NOI BO 20.06.16 - CN PHU HUNG (CTY HUNG TRAN) - 20x40'VL - 20/06 - LING
YCCB200616-HUNG TRAN-
Mình đề xuất thay vì khâu nhập liệu bạn dùng dấu ngoặc đơn ( ) chỗ CTY HUNG TRAN thì bạn bỏ hẳn ( ) đi, dùng dấu gạch ngang ngay sau "PHU HUNG" là ổn rồi. Việc này là để đồng nhất kiểu dữ liệu nguồn giúp xử lý dễ dàng hơn đó bạn. Sau đó, mình thấy dữ liệu của bạn "có thể" xử lý = 1 công thức chung rồi đó.

Bạn chờ các anh chị chú bác khác giỏi hơn mình vào giúp bạn nhé! híc.
 
Cá nhân tôi thấy khó đối với việc lấy được dữ liệu giữa 2 dấu "-".
Lý do: tôi chưa tìm ra quy luật :unknw:
Mình thấy cái dữ liệu nguồn nó "hơi lỗi", hi. Nếu từng thành tố được nằm riêng từng cột, thì quá tốt, và có lẽ thớt cũng đã... không nhờ giúp. :D Đằng này tất cả dữ liệu được gộp chung vào 1 chuỗi text lại không được phân ra rõ ràng số lượng thành tố mới là đau đầu cho dân viết công thức nè chứ. Còn dấu "-" để ngăn cách các thành tố trong chuỗi thì mình nghĩ chắc không phải vấn đề quá lớn đối với các cao thủ GPE nhà mình đâu ạ. :D
 
Mình thấy cái dữ liệu nguồn nó "hơi lỗi", hi. Nếu từng thành tố được nằm riêng từng cột, thì quá tốt, và có lẽ thớt cũng đã... không nhờ giúp. :D Đằng này tất cả dữ liệu được gộp chung vào 1 chuỗi text lại không được phân ra rõ ràng số lượng thành tố mới là đau đầu cho dân viết công thức nè chứ. Còn dấu "-" để ngăn cách các thành tốt trong chuỗi thì mình nghĩ chắc không phải vấn đề quá lớn đối với các cao thủ GPE nhà mình đâu ạ. :D
CTY TAN TAN
CTY TAN TAN TAN
CN PHAN THIET
CTY THANH VY
KHCN HONG LOAN
--> Cái này là cùng 1 dạng, có thể dùng chung 1 quy tắc (quy tắc 1)
CN PHU HUNG (CTY HUNG TRAN)
--> Dạng này khác quy tắc 1 (quy tắc 2)
DU PHONG
--> Dạng này khác quy tắc 1 và 2
Tôi nghĩ không biết chừng còn có dữ liệu kiểu khác nữa đó bạn.
 
Bạn xem thêm dữ liệu nhé!
CTY TAN TAN
CTY TAN TAN TAN
CN PHAN THIET
CTY THANH VY
KHCN HONG LOAN
--> Cái này là cùng 1 dạng, có thể dùng chung 1 quy tắc (quy tắc 1)
CN PHU HUNG (CTY HUNG TRAN)
--> Dạng này khác quy tắc 1 (quy tắc 2)
DU PHONG
--> Dạng này khác quy tắc 1 và 2
Tôi nghĩ không biết chừng có có dữ liệu kiểu khác nữa đó bạn.
Mình cũng bó tay đoạn tên công ty quá lằng nhằng. Còn nếu lấy toàn bộ tên giữa 2 dấu "-" thì công thức
B1={MID(A1,FIND("YC",A1,1),4)&SUBSTITUTE(MID(A1,MIN(IFERROR(FIND(ROW($1:$10)-1,A1,1),LEN(A1))),8),".","")&"-"&MID(A1,FIND("-",A1,1)+2,FIND("-",A1,FIND("-",A1,1)+1)-FIND("-",A1,1)-3)&"-"}
 

File đính kèm

  • CAUHOI.xlsx
    118.4 KB · Đọc: 5
Lần chỉnh sửa cuối:
Mình cũng bó tay đoạn tên công ty quá lằng nhằng. Còn nếu lấy toàn bộ tên giữa 2 dấu "-" thì công thức
B1={MID(A1,FIND("YC",A1,1),4)&SUBSTITUTE(MID(A1,MIN(IFERROR(FIND(ROW($2:$11)-1,A1,1),LEN(A1))),8),".","")&"-"&MID(A1,FIND("-",A1,1)+2,FIND("-",A1,FIND("-",A1,1)+1)-FIND("-",A1,1)-3)&"-"}
Công thức cho quy tắc 1:
PHP:
=LEFT(A1,FIND(" ",A1)-1)&SUBSTITUTE(MID(A1,AGGREGATE(15,6,FIND(ROW($A$1:$A$9),A1),1),8),".","")&"-"&TRIM(LEFT(SUBSTITUTE(MID(A1,FIND(" ",A1,FIND("-",A1)+2),100)," - ",REPT(" ",100)),100))&"-"
 
Chào các bạn, xin hướng dẫn mình xử lý chuỗi bên dưới để ra kết quả như phần TÔ VÀNG. Xin cám ơn!
Thử:
Mã:
B1=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LEFT(A1,SEARCH(" ",A1)-1)&TRIM(SUBSTITUTE(MID(A1,SEARCH("-",A1)-10,10),".",""))&"-"&TRIM(IF(NOT(ISERROR(SEARCH("CTY",A1))),MID(A1,SEARCH("CTY",A1)+4,SEARCH("-",A1,SEARCH("CTY",A1)+4)-(SEARCH("CTY",A1)+4)+1),MID(A1,SEARCH("-",A1)+1,SEARCH("-",A1,SEARCH("-",A1)+1)-SEARCH("-",A1)))),"KHCN ",""),"CN ",""),")","")," -","-")
Tạm thời đúng với nhiêu đó dữ liệu của bạn
 
Thử:
Mã:
B1=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LEFT(A1,SEARCH(" ",A1)-1)&TRIM(SUBSTITUTE(MID(A1,SEARCH("-",A1)-10,10),".",""))&"-"&TRIM(IF(NOT(ISERROR(SEARCH("CTY",A1))),MID(A1,SEARCH("CTY",A1)+4,SEARCH("-",A1,SEARCH("CTY",A1)+4)-(SEARCH("CTY",A1)+4)+1),MID(A1,SEARCH("-",A1)+1,SEARCH("-",A1,SEARCH("-",A1)+1)-SEARCH("-",A1)))),"KHCN ",""),"CN ",""),")","")," -","-")
Tạm thời đúng với nhiêu đó dữ liệu của bạn

WOW, đúng cái mình cần, cám ơn bạn rất nhiều!
Bài đã được tự động gộp:

Công thức cho quy tắc 1:
PHP:
=LEFT(A1,FIND(" ",A1)-1)&SUBSTITUTE(MID(A1,AGGREGATE(15,6,FIND(ROW($A$1:$A$9),A1),1),8),".","")&"-"&TRIM(LEFT(SUBSTITUTE(MID(A1,FIND(" ",A1,FIND("-",A1)+2),100)," - ",REPT(" ",100)),100))&"-"

cám ơn bạn rất nhiều!
Bài đã được tự động gộp:

Mình cũng bó tay đoạn tên công ty quá lằng nhằng. Còn nếu lấy toàn bộ tên giữa 2 dấu "-" thì công thức
B1={MID(A1,FIND("YC",A1,1),4)&SUBSTITUTE(MID(A1,MIN(IFERROR(FIND(ROW($1:$10)-1,A1,1),LEN(A1))),8),".","")&"-"&MID(A1,FIND("-",A1,1)+2,FIND("-",A1,FIND("-",A1,1)+1)-FIND("-",A1,1)-3)&"-"}

cám ơn bạn rất nhiều!
Bài đã được tự động gộp:

Mình đã thấy bạn cho 7 dòng dữ liệu, 7 dòng kết quả minh họa. OK, mình đã hiểu.
Bài của bạn khá phức tạp (ít nhất là đối với mình). Nó có quy luật chung đấy chứ bạn. Tuy nhiên vẫn có dạng dữ liệu như vầy thì nó là ngoại lệ, rất khó khăn cho việc viết công thức chung để tách lọc nó ra:
YCCB NOI BO 20.06.16 - CN PHU HUNG (CTY HUNG TRAN) - 20x40'VL - 20/06 - LING
YCCB200616-HUNG TRAN-
Mình đề xuất thay vì khâu nhập liệu bạn dùng dấu ngoặc đơn ( ) chỗ CTY HUNG TRAN thì bạn bỏ hẳn ( ) đi, dùng dấu gạch ngang ngay sau "PHU HUNG" là ổn rồi. Việc này là để đồng nhất kiểu dữ liệu nguồn giúp xử lý dễ dàng hơn đó bạn. Sau đó, mình thấy dữ liệu của bạn "có thể" xử lý = 1 công thức chung rồi đó.

Bạn chờ các anh chị chú bác khác giỏi hơn mình vào giúp bạn nhé! híc.

cám ơn bạn rất nhiều!
 
Cá nhân tôi thấy khó đối với việc lấy được dữ liệu giữa 2 dấu "-".
Lý do: tôi chưa tìm ra quy luật :unknw:
Dựa vào file và chỉ tính toán cho dữ kiện của chủ thớt đưa ngần ấy, tạm thời anh thấy có các quy luật sau:
1/ Lấy 4 ký tự đầu, dùng Left(..,4)
2/ Dãy số ngày trước dấu "-" đầu tiên, cho nên dùng left() cắt đến dấu "-" đó rồi loại bỏ dấu chấm phân cách, xong dùng right() cắt 6 đến 7 số.
3/ Tìm các ký tự "Cn" hoặc "Cty", nếu lỗi thì tính từ dấu "-" đầu tiên, rồi cắt chuỗi còn lại.

Gom vào 1 công thức sẽ thành:
=IFERROR(LEFT(A1,4)&--RIGHT(SUBSTITUTE(LEFT(A1,FIND("-",A1)-1),".",""),7)&"-"&TRIM(SUBSTITUTE(MID(LEFT(A1,FIND("|",SUBSTITUTE(A1,"-","|",2))-1),IFERROR(LOOKUP(10^10,SEARCH({"cn","cty"},A1))+3,FIND("-",A1)+1),50),")",""))&"-","")

Chúc em ngày vui.
/-*+//-*+//-*+/
 

File đính kèm

  • CAUHOI (1).xlsx
    121.4 KB · Đọc: 7
Dựa vào file và chỉ tính toán cho dữ kiện của chủ thớt đưa ngần ấy, tạm thời anh thấy có các quy luật sau:
1/ Lấy 4 ký tự đầu, dùng Left(..,4)
2/ Dãy số ngày trước dấu "-" đầu tiên, cho nên dùng left() cắt đến dấu "-" đó rồi loại bỏ dấu chấm phân cách, xong dùng right() cắt 6 đến 7 số.
3/ Tìm các ký tự "Cn" hoặc "Cty", nếu lỗi thì tính từ dấu "-" đầu tiên, rồi cắt chuỗi còn lại.

Gom vào 1 công thức sẽ thành:
=IFERROR(LEFT(A1,4)&--RIGHT(SUBSTITUTE(LEFT(A1,FIND("-",A1)-1),".",""),7)&"-"&TRIM(SUBSTITUTE(MID(LEFT(A1,FIND("|",SUBSTITUTE(A1,"-","|",2))-1),IFERROR(LOOKUP(10^10,SEARCH({"cn","cty"},A1))+3,FIND("-",A1)+1),50),")",""))&"-","")

Chúc em ngày vui.
/-*+//-*+//-*+/
Gừng càng già càng cay anh ạ.
Em cám ơn anh đã chỉ bảo.
 
Gừng càng già càng cay anh ạ.
Em cám ơn anh đã chỉ bảo.
Câu này anh chịu, vì em khen cả giàn "cán bộ lão thành" của GPE, để mấy anh càng viết thì càng làm sao cho xứng với chất "cay" của mình.

Anh đi tìm cho trọn câu, coi như trọn tình trọn nghĩa, nhưng tìm chưa ra, vì vậy tự chế như sau:

"Gừng càng già càng cay
Rượu ngon càng ủ càng say hương nồng"

Tự dưng nhớ "anh - bạn hiền", nhớ anh em... :) và nhớ cả chai X.O để cùng nhâm nhi với anh em...

Khà khà khà
/-*+//-*+//-*+/
 
Lần chỉnh sửa cuối:
Câu này anh chịu, vì em khen cả giàn "cán bộ lão thành" của GPE, để mấy anh càng viết thì càng làm sao cho xứng với chất "cay" của mình.

Anh đi tìm cho trọn câu, coi như trọn tình trọn nghĩa, nhưng tìm chưa ra, vì vậy tự chế như sau:

"Gừng càng già càng cay
Rượu ngon càng ủ càng say hương nồng"

Tự dưng nhớ "anh - bạn hiền", nhớ anh em... :) và nhớ cả chai X.O để cùng nhâm nhi với anh em...

Khà khà khà
/-*+//-*+//-*+/
Món rượu bia là em rất kém.
Có điều nếu dịp tới được gặp lại anh thì em sẽ tới bến luôn :drunk:
 
Web KT
Back
Top Bottom