Tổng một biến trong mảng phụ thuộc vào 2 biến khác

Liên hệ QC

nokia0155

Thành viên mới
Tham gia
26/10/06
Bài viết
5
Được thích
1
Chào anh/chị
Nam không biết lấy tiêu đề thế nào cho hợp nữa, hic


Đầu bài:

có các model sản phẩm A, B, C, D…, mỗi tuần đặt hàng nhà máy một lần vài model. Theo quy định thì nhà máy giao hàng sau 6 tuần đặt hàng.


Nhưng nếu model mình đặt nhà máy đang sản xuất trên dây chuyền và có dư ra thì nhà máy sẽ confirm giao trước (tuần thứ 2 or 3.. chẳng hạn).

Có thể nhà máy sẽ giao trước nhưng ko đủ số lượng đặt và chắc chắn rằng nhà máy sẽ giao đủ vào tuần thứ 6.

Giả sử tuần hiện tại là tuần thứ n, tương lai là tuần thứ n + 1 …., quá khứ là tuần n -1 …

Yêu cầu:

Cho Bảng nhập dữ liệu hàng tuần, lập Bảng theo dõi tính Số lượng sản phẩm sẽ nhận vào tuần thứ "n + ? " dựa vào xác nhận từ nhà máy

Giải thích:
Cột "Số lượng đặt hàng" có thể tính bằng lệnh SUMIF với range là B26:B100, criteria là "model", sumrange là C26:C100.

Cột "Số lượng sản phẩm sẽ nhận vào tuần thứ …" có 2 biến là "model" và "Ngày/tuần nhà máy xác nhận giao", đến đây thì "bí", nhờ anh/chị giúp nhé. Thanks.

Lưu ý:
ở bảng theo dõi, thì tuần n là tuần hiện tại (nhập vào bằng công tức weeknum chẳng hạn và các tuần n+1, n+2 cũng nhập bằng công thức n +1, n +2 vào...), và mình cần theo dõi cho tuần n và các tuần tiếp theo.
ở bảng nhập dữ liệu hàng tuần, là mình nhập "con số" của tuần mình đặt hàng, và nó là dữ liệu từ quá khứ đến hiện tại và cả tương lại (sẽ nhập sau này)

Rất vui được làm quen,
Nguyễn Vân Nam
Ym: zire31
Tel: 0909306149
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn nên đưa dữ liệu thật lên. Tôi không nghĩ trong thực tế bạn lại theo dõi theo kiểu tuần thứ n, n+1,... Không lẽ sang tuần sau bạn lại sửa lại hết, tuần n+2 thành n+1, n+1 thành n???
Vì mấy cái Tuần thứ n, n+1,... cũng là căn cứ để tính toán. Nếu bạn theo dõi theo một cách khác thì công thức sẽ khác hoàn toàn.
 
Bạn nên đưa dữ liệu thật lên. Tôi không nghĩ trong thực tế bạn lại theo dõi theo kiểu tuần thứ n, n+1,... Không lẽ sang tuần sau bạn lại sửa lại hết, tuần n+2 thành n+1, n+1 thành n???
Vì mấy cái Tuần thứ n, n+1,... cũng là căn cứ để tính toán. Nếu bạn theo dõi theo một cách khác thì công thức sẽ khác hoàn toàn.

tuần n chỉ mang ý nghĩa là tuần hiện tại để theo dõi thôi, tức là mình đứng ở tuần n và muốn biết trong các tuần tiếp theo mình sẽ nhận được bao nhiêu sản phẩm dựa vào confirm tuần giao hàng của nhà máy, ko cần sửa gì hết.

Thí dụ mình dùng hàm WEEKNUM để biết tuần hiện tại là tuần 39, và muốn biết trong tuần 40, 41 ... mình sẽ nhận được bao nhiêu sản phẩm của từng model dựa vào confirm của nhà máy cho những đơn hàng đã gửi vào những tuần trong quá khứ ( tuần 35, 36 chẳng hạn ...)

Còn số liệu có gì quan trọng đâu bạn, bạn muốn đưa số nào vào cũng được mà. Với đầu bài đặt ra mình cần biết cách làm thế nào là được rồi (đây là lần đầu tiên mình làm bảng này nên số liệu cũng là mình tự đặt ra thôi, để thấy kết quả cuối cùng khi ráp công thức vào thôi)
Thanks bạn.
 
Bạn tham khảo cách mình làm xem sao?

PHP:
Option Explicit
Sub THop()
 Dim Rng As Range, Clls As Range:               Dim Rw As Long, fRw As Long
 
 Sheets("GPE").Select:                          Set Rng = Selection
 If Not Intersect(Selection, Columns(25)) Is Nothing Then
   Rw = Rng.Row:              fRw = Rng.End(xlUp).Row
   Rng.Interior.ColorIndex = 34 + (Rw Mod 6)
   ActiveCell.FormulaR1C1 = _
      "=SUM(R[-" & (Rw - fRw - 1) & "]C[-22]:RC[-22])+R[-" & (Rw - fRw) & _
         "]C-SUM(R[-" & (Rw - fRw) & "]C[-11]:RC[-11])"
   Rng.AutoFill Destination:=Rng.Resize(, 7), Type:=xlFillDefault
 End If
End Sub

Hướng dẫn sử dụng:

(*) Chọn 1 ô nào đó trên cột 'Y', tốt nhất là đầu hay cuối tuần;

(*) Bấm tổ hợp {CTRL}+{SHIFT}+T để macro điền các giá trị sẽ được nhận trong các tuần kế tiếp.
 

File đính kèm

tuần n chỉ mang ý nghĩa là tuần hiện tại để theo dõi thôi, tức là mình đứng ở tuần n và muốn biết trong các tuần tiếp theo mình sẽ nhận được bao nhiêu sản phẩm dựa vào confirm tuần giao hàng của nhà máy, ko cần sửa gì hết.

Thí dụ mình dùng hàm WEEKNUM để biết tuần hiện tại là tuần 39, và muốn biết trong tuần 40, 41 ... mình sẽ nhận được bao nhiêu sản phẩm của từng model dựa vào confirm của nhà máy cho những đơn hàng đã gửi vào những tuần trong quá khứ ( tuần 35, 36 chẳng hạn ...)

Còn số liệu có gì quan trọng đâu bạn, bạn muốn đưa số nào vào cũng được mà. Với đầu bài đặt ra mình cần biết cách làm thế nào là được rồi (đây là lần đầu tiên mình làm bảng này nên số liệu cũng là mình tự đặt ra thôi, để thấy kết quả cuối cùng khi ráp công thức vào thôi)
Thanks bạn.
Ví dụ dữ liệu của bạn là tuần 33, 34, 35, 36, 37,... và bạn muốn tổng hợp cho tuần 35. Khác hoàn toàn với khái niệm tuần hiện tại là n, tuần kế tiếp là n+1.
Nếu bạn dùng n, n+1,... thì sang tuần sau, tuần n+1 sẽ là tuần n còn khi bạn dùng một con số, tuần 35 lúc nào cũng là tuần 35. Như tôi đã nói ở bài trước, công thức sẽ dựa vào số thứ tự tuần này.Nếu lập mẫu theo kiểu tuần n, n+1 thì mỗi tuần bạn phải sửa dữ liệu lại. Vì tuần n bây giờ đâu còn mang số liệu đó. Mà công thức thì nó chỉ hiểu tuần n là tuần hiện tại.
Có thể sẽ khó hiểu nhưng tôi cần phải nói trước để tránh mất thời gian và tốn công vô ích vì tôi biết chắc rằng lập công thức theo cái kiểu tuần n, tuần n+1 bạn sẽ không áp dụng được.
 
PHP:
Option Explicit
Sub THop()
 Dim Rng As Range, Clls As Range:               Dim Rw As Long, fRw As Long
 
 Sheets("GPE").Select:                          Set Rng = Selection
 If Not Intersect(Selection, Columns(25)) Is Nothing Then
   Rw = Rng.Row:              fRw = Rng.End(xlUp).Row
   Rng.Interior.ColorIndex = 34 + (Rw Mod 6)
   ActiveCell.FormulaR1C1 = _
      "=SUM(R[-" & (Rw - fRw - 1) & "]C[-22]:RC[-22])+R[-" & (Rw - fRw) & _
         "]C-SUM(R[-" & (Rw - fRw) & "]C[-11]:RC[-11])"
   Rng.AutoFill Destination:=Rng.Resize(, 7), Type:=xlFillDefault
 End If
End Sub
Hướng dẫn sử dụng:

(*) Chọn 1 ô nào đó trên cột 'Y', tốt nhất là đầu hay cuối tuần;

(*) Bấm tổ hợp {CTRL}+{SHIFT}+T để macro điền các giá trị sẽ được nhận trong các tuần kế tiếp.
Cám ơn bạn, tối nay mình sẽ test thử cách của bạn
 
Ví dụ dữ liệu của bạn là tuần 33, 34, 35, 36, 37,... và bạn muốn tổng hợp cho tuần 35. Khác hoàn toàn với khái niệm tuần hiện tại là n, tuần kế tiếp là n+1.
Nếu bạn dùng n, n+1,... thì sang tuần sau, tuần n+1 sẽ là tuần n còn khi bạn dùng một con số, tuần 35 lúc nào cũng là tuần 35. Như tôi đã nói ở bài trước, công thức sẽ dựa vào số thứ tự tuần này.Nếu lập mẫu theo kiểu tuần n, n+1 thì mỗi tuần bạn phải sửa dữ liệu lại. Vì tuần n bây giờ đâu còn mang số liệu đó. Mà công thức thì nó chỉ hiểu tuần n là tuần hiện tại.
Có thể sẽ khó hiểu nhưng tôi cần phải nói trước để tránh mất thời gian và tốn công vô ích vì tôi biết chắc rằng lập công thức theo cái kiểu tuần n, tuần n+1 bạn sẽ không áp dụng được.
vâng, mình hiểu ý bạn, sorry vì mình chưa nói rõ!
ở đây cần làm rỏ là:
ở bảng theo dõi, thì tuần n là tuần hiện tại (nhập vào bằng công tức weeknum chẳng hạn và các tuần n+1, n+2 cũng nhập bằng công thức +1, +2 vào...), và mình cần theo dõi cho tuần n và các tuần tiếp theo.
ở bảng nhập dữ liệu hàng tuần, là mình nhập "con số" của tuần mình đặt hàng, và nó là dữ liệu từ quá khứ đến hiện tại và cả tương lại (sẽ nhập sau này)
 
Web KT

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

Back
Top Bottom