Tăng số number đến khi thỏa mã điều kiện

Liên hệ QC

hadoan-pap

Thành viên tiêu biểu
Tham gia
8/7/15
Bài viết
453
Được thích
18
Em chào mọi người.

Chúc mọi người cuối tuần vui vẻ ạ.

Em có 1 file từ kế hoạch sản xuất nhờ hỗ trợ, nhưng nhìn yêu cầu thì khá phức tạp ạ.. Em rất mọi người và các anh/chị hỗ trợ em bài toán này ạ.

- Mỗi mã hàng có 2 công đoạn cần điều chỉnh số "Adjust Number" tại dòng "PLAN" là 'Packing' và 'Done' ạ.

- Từ T6 trở đi là các ngày... mình sẽ tìm ra ngày bắt đầu chạy đến ngày cuối của tháng ạ. Ví dụ hôm nay 20/11 ( ngày nhà giáo ) thì mình chạy từ 20/11 đến 30/11 ạ

- Nó sẽ tìm các dòng "Quantity" vs "Store" theo từng mã hàng ở cột "Q" CỦA 2 CÔNG ĐOẠN "Packing" và "Done" ở cột "R" .... Nếu dòng nào mà có ngày mà value <0 gần nhất thì nó sẽ điều chỉnh số ở cột M của dòng "PLAN" cho nhảy từ 24 đến 30 ( mỗi lần nhảy 1 đơn vị... ví dụ 24-25-26-27 )... đến khi mà value ở dòng "Quantity" hoặc "Store" >= 0 thì dừng.

- Sau đó nó sẽ remove công thức trên dòng "Quantity" vs "Store" bắt đầu từ vị trí mà Value sau điều chỉnh > 0 đó trở về đến ngày trc đó chạy bot. Ví dụ chạy từ ngày 11/20 đến 11/30 thì ngày đầu tiên Value âm là 11/23 ( W12 ) thì khi đó ngày điều chỉnh đầu tiên là 11/23, Sau khi điều chỉnh ngày 11/23 Value >0 thì nó sẽ remove công thức từ các ô 11/20, 11/21, 11/22, 11/23 để chỉ giữ lại Value. Trả lại giá trị tại cột "M" là 24 như ban đầu

- Sau khi remove công thức , quay lại kiểm tra Nếu cột "Eval" cột 'I' mà là "NG" của công đoạn tương ứng thi làm 2 bước ạ:

+ Nếu sau nó NG tại công đoạn "Packing"... Thì sẽ điều chỉnh số Adjust Number tại cột M của dòng "PLAN".. Tăng từ 24 đến 30 ( nhảy 1 đơn vị 1 lần ). Đến khi nào cột EVAL là OK thì dừng ạ

+ Nếu nó NG tại công đoạn "Done" sau khi điều chỉnh , thì sẽ điều chỉnh số Adjust Number từ 24 đến 30... Riêng công đoạn "Done" thì nó sẽ ảnh hưởng cac công đoạn khác bên dưới. Nên nếu điều chỉnh công đoạn "Done" là OK thì sẽ kiểm tra các công đoạn bên dưới cũng phải là "OK" thì dừng... Nếu tăng từ 24 đến 30 mà chỉ có công đoạn "Done" OK thì lấy giá trị number đầu tiên điền vào cột Adjust.


Dạ, Em xin lỗi vi trình bày nó hơi dài dòng ạ

Rất mong được anh chị và mọi người hỗ trợ ạ.

Em xin cảm ơn nhiều!
Bài đã được tự động gộp:

@Ba Tê Dạ em rất mong được anh hỗ trợ bài toán này ạ... Vì đoạn đầu nó cũng khá giống với bài toán hôm qua anh hỗ trợ em ạ.

Em xin cảm ơn anh nhiều!
 

File đính kèm

  • Book2.xlsm
    25.7 KB · Đọc: 7
Lần chỉnh sửa cuối:
Em chào mọi người.

Chúc mọi người cuối tuần vui vẻ ạ.

Em có 1 file từ kế hoạch sản xuất nhờ hỗ trợ, nhưng nhìn yêu cầu thì khá phức tạp ạ.. Em rất mọi người và các anh/chị hỗ trợ em bài toán này ạ.

- Mỗi mã hàng có 2 công đoạn cần điều chỉnh số "Adjust Number" tại dòng "PLAN" là 'Packing' và 'Done' ạ.

- Từ T6 trở đi là các ngày... mình sẽ tìm ra ngày bắt đầu chạy đến ngày cuối của tháng ạ. Ví dụ hôm nay 20/11 ( ngày nhà giáo ) thì mình chạy từ 20/11 đến 30/11 ạ

- Nó sẽ tìm các dòng "Quantity" vs "Store" theo từng mã hàng ở cột "Q" CỦA 2 CÔNG ĐOẠN "Packing" và "Done" ở cột "R" .... Nếu dòng nào mà có ngày mà value <0 gần nhất thì nó sẽ điều chỉnh số ở cột M của dòng "PLAN" cho nhảy từ 24 đến 30 ( mỗi lần nhảy 1 đơn vị... ví dụ 24-25-26-27 )... đến khi mà value ở dòng "Quantity" hoặc "Store" >= 0 thì dừng.

- Sau đó nó sẽ remove công thức trên dòng "Quantity" vs "Store" bắt đầu từ vị trí mà Value sau điều chỉnh > 0 đó trở về đến ngày trc đó chạy bot. Ví dụ chạy từ ngày 11/20 đến 11/30 thì ngày đầu tiên Value âm là 11/23 ( W12 ) thì khi đó ngày điều chỉnh đầu tiên là 11/23, Sau khi điều chỉnh ngày 11/23 Value >0 thì nó sẽ remove công thức từ các ô 11/20, 11/21, 11/22, 11/23 để chỉ giữ lại Value. Trả lại giá trị tại cột "M" là 24 như ban đầu

- Sau khi remove công thức , quay lại kiểm tra Nếu cột "Eval" cột 'I' mà là "NG" của công đoạn tương ứng thi làm 2 bước ạ:

+ Nếu sau nó NG tại công đoạn "Packing"... Thì sẽ điều chỉnh số Adjust Number tại cột M của dòng "PLAN".. Tăng từ 24 đến 30 ( nhảy 1 đơn vị 1 lần ). Đến khi nào cột EVAL là OK thì dừng ạ

+ Nếu nó NG tại công đoạn "Done" sau khi điều chỉnh , thì sẽ điều chỉnh số Adjust Number từ 24 đến 30... Riêng công đoạn "Done" thì nó sẽ ảnh hưởng cac công đoạn khác bên dưới. Nên nếu điều chỉnh công đoạn "Done" là OK thì sẽ kiểm tra các công đoạn bên dưới cũng phải là "OK" thì dừng... Nếu tăng từ 24 đến 30 mà chỉ có công đoạn "Done" OK thì lấy giá trị number đầu tiên điền vào cột Adjust.


Dạ, Em xin lỗi vi trình bày nó hơi dài dòng ạ

Rất mong được anh chị và mọi người hỗ trợ ạ.

Em xin cảm ơn nhiều!
Bài đã được tự động gộp:

@Ba Tê Dạ em rất mong được anh hỗ trợ bài toán này ạ... Vì đoạn đầu nó cũng khá giống với bài toán hôm qua anh hỗ trợ em ạ.

Em xin cảm ơn anh nhiều!
Diễn đạt không hiểu gì hết (với người ngoài chuyên môn giống bạn)
Mấy cái nếu cần phải giải thích rõ: Ô nào điều chỉnh thành bao nhiêu, lý do, dựa vào ô nào, điều kiện gì, .... ô nào sau đó chỉnh lại thế nào, dựa vào cái gì, điều kiện gì ...
Đến ngày trc đó là ngày nào (trc là gì?)
@Ba Tê Dạ em rất mong được anh hỗ trợ bài toán này ạ... - Đừng nên gọi đích danh như vậy, có rất nhiều thành viên khác muốn giúp bạn nhưng khi bạn nhờ đích danh người nào khác thì họ sẽ "không thèm" giúp
 
Upvote 0
Diễn đạt không hiểu gì hết (với người ngoài chuyên môn giống bạn)
Mấy cái nếu cần phải giải thích rõ: Ô nào điều chỉnh thành bao nhiêu, lý do, dựa vào ô nào, điều kiện gì, .... ô nào sau đó chỉnh lại thế nào, dựa vào cái gì, điều kiện gì ...
Đến ngày trc đó là ngày nào (trc là gì?)
@Ba Tê Dạ em rất mong được anh hỗ trợ bài toán này ạ... - Đừng nên gọi đích danh như vậy, có rất nhiều thành viên khác muốn giúp bạn nhưng khi bạn nhờ đích danh người nào khác thì họ sẽ "không thèm" giúp
Khó hiểu một phần cũng vì tiếng Tây.
Điển hình: "Tăng số number" là gì? từ "số" tiếng Việt và từ "number" tiếng Tây kia là nói về hai con số hay một?
Còn vài chỗ nữa. Cách dùng tiếng Tây của thớt cao quá cho nên tôi hiểu không nổi.
 
Upvote 0
Diễn đạt không hiểu gì hết (với người ngoài chuyên môn giống bạn)
Mấy cái nếu cần phải giải thích rõ: Ô nào điều chỉnh thành bao nhiêu, lý do, dựa vào ô nào, điều kiện gì, .... ô nào sau đó chỉnh lại thế nào, dựa vào cái gì, điều kiện gì ...
Đến ngày trc đó là ngày nào (trc là gì?)
@Ba Tê Dạ em rất mong được anh hỗ trợ bài toán này ạ... - Đừng nên gọi đích danh như vậy, có rất nhiều thành viên khác muốn giúp bạn nhưng khi bạn nhờ đích danh người nào khác thì họ sẽ "không thèm" giúp
Dạ em xin lỗi để e giải thích từng phần như sau ạ.

Phần 1:

-1. Loop theo từng Mã Hàng tại cột "Q" trong file ạ

-2. Tại 2 công đoạn "Packing" & "Done" tương ứng từng Mã Hàng ( Mã Hàng thì có cái có công đoạn "Done", có cái không có ) thì kiểm tra 2 dòng "Quantity" & "Store" tại cột P bắt đầu từ ngày chạy chương trinh ( ví dụ hnay là 11/20 ) đến ngày cuối cùng của tháng ( dòng 6 bôi đỏ ạ )

-3. Chạy từng dòng một tương ứng từng ngày một bắt đầu từ ngày chạy file. Dòng nào mà "Quantity" or "Store" < 0 thì dừng lại sau đó Tăng số Adjust Number tại cột M của dòng "PLAN" cột P tương ứng mã hàng đó. Tăng bắt đầu từ 24 đến 30 ( nhảy lần lượt 24, 25, 26 )... Nếu tăng đến giá trị nào mà dòng Quantity hay Store >=0 thì dừng lại và remove toàn bô công thức từ ô đó trở về ô ban đầu chứa ngày khởi chạy. Làm xong thì chỉnh lại số Adjust Number về mặc định 24.

Ví dụ: Loop chạy đến ô W12 thấy "Quantity" < 0, dừng lại. Sau đó Tìm dòng Plan tương ứng Mã Hàng đó để tăng Number tại cột M bắt đầu từ 24. Khi tăng lần lượt 24,25,26 vẫn âm, nhưng đến 27 thì Value đã >0 thì dừng lại và remove toàn bộ công thức ( chỉ giữ lại Value ) từ W12 trở về T12 ạ.

Em xin gửi lại file như đính kèm ạ
 

File đính kèm

  • Book2.xlsm
    25.8 KB · Đọc: 2
Upvote 0
Dạ em xin lỗi để e giải thích từng phần như sau ạ.

Phần 1:

-1. Loop theo từng Mã Hàng tại cột "Q" trong file ạ

-2. Tại 2 công đoạn "Packing" & "Done" tương ứng từng Mã Hàng ( Mã Hàng thì có cái có công đoạn "Done", có cái không có ) thì kiểm tra 2 dòng "Quantity" & "Store" tại cột P bắt đầu từ ngày chạy chương trinh ( ví dụ hnay là 11/20 ) đến ngày cuối cùng của tháng ( dòng 6 bôi đỏ ạ )

-3. Chạy từng dòng một tương ứng từng ngày một bắt đầu từ ngày chạy file. Dòng nào mà "Quantity" or "Store" < 0 thì dừng lại sau đó Tăng số Adjust Number tại cột M của dòng "PLAN" cột P tương ứng mã hàng đó. Tăng bắt đầu từ 24 đến 30 ( nhảy lần lượt 24, 25, 26 )... Nếu tăng đến giá trị nào mà dòng Quantity hay Store >=0 thì dừng lại và remove toàn bô công thức từ ô đó trở về ô ban đầu chứa ngày khởi chạy. Làm xong thì chỉnh lại số Adjust Number về mặc định 24.

Ví dụ: Loop chạy đến ô W12 thấy "Quantity" < 0, dừng lại. Sau đó Tìm dòng Plan tương ứng Mã Hàng đó để tăng Number tại cột M bắt đầu từ 24. Khi tăng lần lượt 24,25,26 vẫn âm, nhưng đến 27 thì Value đã >0 thì dừng lại và remove toàn bộ công thức ( chỉ giữ lại Value ) từ W12 trở về T12 ạ.

Em xin gửi lại file như đính kèm ạ
Coi qua thì plan dòng 13 có tăng đến bao nhiêu thì Quantity nó cũng không đổi đâu nha
 
Upvote 0
Dạ ko, nó sẽ adjust number tại dòng Plan anh ạ.. nó là cái ô M13 e bôi đỏ ấy ạ.
Cái này thì tôi biết, nó sẽ điều chỉnh số ở dòng Plan cột M. Nhưng vấn đề là bạn nói như thế này:
Dòng nào mà "Quantity" or "Store" < 0 thì dừng lại sau đó Tăng số Adjust Number tại cột M của dòng "PLAN" cột P tương ứng mã hàng đó. Tăng bắt đầu từ 24 đến 30 ( nhảy lần lượt 24, 25, 26 )... Nếu tăng đến giá trị nào mà dòng Quantity hay Store >=0
Có phải dòng 11 là dòng Quanlity và W11 bị âm đúng không? như vậy sẽ điều chỉnh ở Plan cột M (tức M13)
Nhưng hiện tại, ô W11 đang tham chiếu tới M12 chứ không phải M13. Vậy điều chỉnh M13 cũng không làm cho W11 thay đổi, cho nên nó không bao giờ >=0 được
 
Upvote 0
Cái này thì tôi biết, nó sẽ điều chỉnh số ở dòng Plan cột M. Nhưng vấn đề là bạn nói như thế này:

Có phải dòng 11 là dòng Quanlity và W11 bị âm đúng không? như vậy sẽ điều chỉnh ở Plan cột M (tức M13)
Nhưng hiện tại, ô W11 đang tham chiếu tới M12 chứ không phải M13. Vậy điều chỉnh M13 cũng không làm cho W11 thay đổi, cho nên nó không bao giờ >=0 được
Dạ em xin lỗi có thể e chưa chỉnh lại công thức đấy ạ. Hình anh chụp bên trên nó phải là M13-26.8 đấy ạ
 
Upvote 0
Dạ em xin lỗi có thể e chưa chỉnh lại công thức đấy ạ. Hình anh chụp bên trên nó phải là M13-26.8 đấy ạ
Còn một vấn đề nữa, xét mỗi số âm đầu tiên thôi hay tất cả dòng đó đều phải >=0, ví dụ xét W11 >=0 tại 27 thì Y11 vẫn bị âm, có xét tiếp nó không hay dừng lại
Bạn gửi file mới lên sửa lại vấn đề lúc nãy, và tốt nhất là làm một sheet kết quả mong muốn vào, nếu giúp được thì tôi giúp, không thì người khác nhìn vào cũng hiểu vấn đề ngay. Có nhiều người họ nhìn không hiểu là họ lướt qua, bạn sẽ mất đi cơ hội được giúp đỡ đấy
 
Upvote 0
Còn một vấn đề nữa, xét mỗi số âm đầu tiên thôi hay tất cả dòng đó đều phải >=0, ví dụ xét W11 >=0 tại 27 thì Y11 vẫn bị âm, có xét tiếp nó không hay dừng lại
Bạn gửi file mới lên sửa lại vấn đề lúc nãy, và tốt nhất là làm một sheet kết quả mong muốn vào, nếu giúp được thì tôi giúp, không thì người khác nhìn vào cũng hiểu vấn đề ngay. Có nhiều người họ nhìn không hiểu là họ lướt qua, bạn sẽ mất đi cơ hội được giúp đỡ đấy
Em cảm ơn anh nhiều nhé.

Em đang code và có vẻ xuôi xuôi ạ.. Có khó khăn em sẽ nhờ anh và mọi người hỗ trợ ạ.

Cảm ơn anh và cảm ơn mọi người ạ!
 
Upvote 0
Web KT
Back
Top Bottom