Bạn có thể cho thêm 10 dòng dữ liệu nữa không?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 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.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.
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ạn xem thêm dữ liệu nhé!
YCCB NOI BO 20.06.16 - CN PHU HUNG (CTY HUNG TRAN) - 20x40'VL - 20/06 - LING |
YCCB200616-HUNG TRAN- |
Cá nhân tôi thấy khó đối với việc lấy được dữ liệu giữa 2 dấu "-".Bạn xem thêm dữ liệu nhé!
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.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![]()
CTY TAN TANMì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.Đằ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 ạ.
![]()
Bạn xem thêm dữ liệu nhé!
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ứcCTY 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.
Công thức cho quy tắc 1: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)&"-"}
=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))&"-"
Thử: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!
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 ",""),")","")," -","-")
Thử:
Tạm thời đúng với nhiêu đó dữ liệu của bạnMã: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 ",""),")","")," -","-")
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))&"-"
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)&"-"}
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:
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 đó.
YCCB NOI BO 20.06.16 - CN PHU HUNG (CTY HUNG TRAN) - 20x40'VL - 20/06 - LING YCCB200616-HUNG TRAN-
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.
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: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![]()
Gừng càng già càng cay anh ạ.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.
![]()
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.Gừng càng già càng cay anh ạ.
Em cám ơn anh đã chỉ bảo.
Món rượu bia là em rất kém.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à
![]()