Tìm ngày theo điều kiện trong 1 chuỗi

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

Emyeuexcel

Thành viên thường trực
Tham gia
9/6/16
Bài viết
299
Được thích
30
Chào anh chị GPE,

Mình có file đính kèm.
Anh chị giúp mình công thức cột H để ra kết quả như cột G với ạ.
Mình làm tới đó, mà vẫn còn sai.
Cảm ơn anh chị nhiều!
 

File đính kèm

  • Tìm ngày theo điều kiện của chuỗi.xlsx
    11.5 KB · Đọc: 26
Bạn thử cái này
=IFS(C2="Cancel","Cancel",ISNUMBER(FIND("destination",A2)),C2+SUBSTITUTE(TEXTJOIN("",TRUE,IF(ISNUMBER(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1),MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),"")),"100",""),ISNUMBER(FIND("ETD",A2)),B2+SUBSTITUTE(TEXTJOIN("",TRUE,IF(ISNUMBER(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1),MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),"")),"100",""),ISNUMBER(FIND("L/C",A2)),B2+SUBSTITUTE(TEXTJOIN("",TRUE,IF(ISNUMBER(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1),MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),"")),"100",""),ISNUMBER(FIND("warehouse",A2)),D2+SUBSTITUTE(TEXTJOIN("",TRUE,IF(ISNUMBER(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1),MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),"")),"100",""),ISNUMBER(FIND("full set docs",A2)),C2-15,ISNUMBER(FIND("against documents",A2)),C2-15)
 
Bạn tạo 2 cột phụ E và F, cột E gõ "B,C,D" tương ứng với ngày của cột muốn cộng, cột F gõ số ngày muốn cộng. Rồi sử dụng công thức này nhé:
=IF($E2="B";B2+F2;IF($E2="C";C2+F2;D2+F2))
Vậy cho đơn giản bạn nhé.
 

File đính kèm

  • ngay thang.jpg
    ngay thang.jpg
    51.2 KB · Đọc: 7
Thớt này lười quá. Người làm việc đàng hoàng thì đã lập ra một bảng tra terms (full set docs, against documents, days from ETD, ...). Công thức sẽ đỡ khủng.
Có bao nhiêu kiểu thanh toán tiền thì có bao nhiêu đấy dòng trong bảng.

Mà công ty này ngon dữ. Cả 3 tháng mới chịu thanh toán tiền LC
 
Bạn tạo 2 cột phụ E và F, cột E gõ "B,C,D" tương ứng với ngày của cột muốn cộng, cột F gõ số ngày muốn cộng. Rồi sử dụng công thức này nhé:
=IF($E2="B";B2+F2;IF($E2="C";C2+F2;D2+F2))
Vậy cho đơn giản bạn nhé.
Cảm ơn bạn! Cũng là ý tưởng, nhưng trong cái file của bên mình không cho chèn thêm cột (do người khác quản lý)- Mình phụ trách phần ngày thanh toán và chỉ trích ra làm ví dụ chứ file gốc nhiều trường thông tin hơn.
Mình ghi nhận ý của bạn nhé!
Bài đã được tự động gộp:

Thớt này lười quá. Người làm việc đàng hoàng thì đã lập ra một bảng tra terms (full set docs, against documents, days from ETD, ...). Công thức sẽ đỡ khủng.
Có bao nhiêu kiểu thanh toán tiền thì có bao nhiêu đấy dòng trong bảng.

Mà công ty này ngon dữ. Cả 3 tháng mới chịu thanh toán tiền LC
Cảm ơn bạn về cách làm này! Bạn nói cũng chuẩn thất đấy!
Do cái file gốc thì người khác quản lý và điều khoản thanh toán họ làm tùm lum, (không thống nhất 1 cụm từ dù chung 1 kiểu thanh toán), nhưng thường có các từ khóa như vậy.
Mình không làm chủ được cái file gốc, chỉ phụ trách 1 phần nhỏ, 1 cột thanh toán.
Nên mình chỉ nghĩ làm sao có công thức nó bao quát khi nó dựa vào các từ khóa đó.
Bài đã được tự động gộp:

Bạn thử cái này
=IFS(C2="Cancel","Cancel",ISNUMBER(FIND("destination",A2)),C2+SUBSTITUTE(TEXTJOIN("",TRUE,IF(ISNUMBER(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1),MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),"")),"100",""),ISNUMBER(FIND("ETD",A2)),B2+SUBSTITUTE(TEXTJOIN("",TRUE,IF(ISNUMBER(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1),MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),"")),"100",""),ISNUMBER(FIND("L/C",A2)),B2+SUBSTITUTE(TEXTJOIN("",TRUE,IF(ISNUMBER(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1),MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),"")),"100",""),ISNUMBER(FIND("warehouse",A2)),D2+SUBSTITUTE(TEXTJOIN("",TRUE,IF(ISNUMBER(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1),MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),"")),"100",""),ISNUMBER(FIND("full set docs",A2)),C2-15,ISNUMBER(FIND("against documents",A2)),C2-15)
Mình rất biết ơn bạn!
Công thức tuyệt vời, thấy đúng ý mình!
Dù nó hơi dài. Nhưng miễn sao nó bao quát được các "key word" như Destination, ETD, Warehouse, L/C,... là ổn!
Chúc bạn vui, khỏe!
Thân!
 
Lần chỉnh sửa cuối:
Vì mình dùng 1 hàm chung để tách lấy số ngày trong chuỗi {SUBSTITUTE(TEXTJOIN("",TRUE,IF(ISNUMBER(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1),MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),"")),"100","")} nên hàm sẽ hơi dài, nếu bạn có cách nào tác lấy số ngày gọn hơn thì có thể thay thế để hàm ngắn gọn lại
 
Vì mình dùng 1 hàm chung để tách lấy số ngày trong chuỗi {SUBSTITUTE(TEXTJOIN("",TRUE,IF(ISNUMBER(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1),MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),"")),"100","")} nên hàm sẽ hơi dài, nếu bạn có cách nào tác lấy số ngày gọn hơn thì có thể thay thế để hàm ngắn gọn lại
Cảm ơn bạn!
Mình hiểu rồi!
Thân mến!
 
Vì mình dùng 1 hàm chung để tách lấy số ngày trong chuỗi {SUBSTITUTE(TEXTJOIN("",TRUE,IF(ISNUMBER(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1),MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),"")),"100","")} nên hàm sẽ hơi dài, nếu bạn có cách nào tác lấy số ngày gọn hơn thì có thể thay thế để hàm ngắn gọn lại
Chào bạn,

Bạn thấy sao nếu dùng hàm này tách lấy số ngày trong chuỗi:
=LOOKUP(10^10,--RIGHT(LEFT(A2,SEARCH("days",A2)-1),ROW($1:$10)))
 

File đính kèm

  • Tìm ngày theo điều kiện của chuỗi.xlsm
    19.6 KB · Đọc: 7
Web KT

Bài viết mới nhất

Back
Top Bottom