SUMPRODUCT và Công thức mảng - Phép tính có nhiều điều kiện

Liên hệ QC
Công thức mảng của ndu
=SUM((A2:A11=TRANSPOSE(E2:E11))*(B2:B11))


có thể rút gọn như sau, cũng là công thức mảng:

=SUM(SUMIF(A2:A11;E2:E11;B2:B11))

hoặc nếu chỉ có 4 giá trị cần tính, thì thu hẹp lại:

=SUM(SUMIF(A2:A11;E2:E5;B2:B11))
 
Mình là member mới mong các anh chị nào có kinh nghiệm giúp đỡ minh liên kết wordsheet gửi kèm .Làm sao khi nhập vào bảng nhập xuất thì nó tự động cập nhật vào bảng tiến độ sx hàng ngày (trong today in và today out)theo thứ tự các màu số lượng của ngày hôm đó vì mỗi ngày em phải nhập số liệu để báo cáo mà phải nhập hai lần(nhập vào nhập xuất hàng ngày sau đó nhập vào today in và today out)rất mất thời gian mong anh chị giúp đỡ cảm ơn anh chị nhiềuView attachment báo cáo.rar
 
Hàm sumproduct

Hàm này nghe vẻ cung hay nhỉ nhưng có ai hiểu giải thích ngắn gon hơn không chứ nhìn thế nà 1 lúc làhoa mắt rùi!
 
Hàm Sumproduct bị lỗi

Chào các bạn. Tại sao ô B2 mình dùng hàm SUMPRODUCT để tính tổng số lít xăng của xe 1234 trong ngày 11/7/2011 sao kg được vậy các bạn. Mình đang làm EXCEL 2003. Nếu EX 2007 thì mình dùng hàm SUMIFS. Mong đc chỉ giúp.
 

File đính kèm

Chào các bạn. Tại sao ô B2 mình dùng hàm SUMPRODUCT để tính tổng số lít xăng của xe 1234 trong ngày 11/7/2011 sao kg được vậy các bạn. Mình đang làm EXCEL 2003. Nếu EX 2007 thì mình dùng hàm SUMIFS. Mong đc chỉ giúp.

Bạn sửa lại như thế này:

=+SUMPRODUCT((Sheet1!$B$2:$B$20=Sheet2!B$1)*(Sheet1!$A$2:$A$20=Sheet2!$A2)*(Sheet1!$C$2:$C$20))
 
Chào các bạn. Tại sao ô B2 mình dùng hàm SUMPRODUCT để tính tổng số lít xăng của xe 1234 trong ngày 11/7/2011 sao kg được vậy các bạn. Mình đang làm EXCEL 2003. Nếu EX 2007 thì mình dùng hàm SUMIFS. Mong đc chỉ giúp.
B2=SUMPRODUCT((Sheet1!$B$2:$B$20=Sheet2!B$1)*(Sheet1!$A$2:$A$20=Sheet2!$A2)*(Sheet1!$C$2:$C$20))

Chào các bạn. Tại sao ô B2 mình dùng hàm SUMPRODUCT để tính tổng số lít xăng của xe 1234 trong ngày 11/7/2011 sao kg được vậy các bạn. Mình đang làm EXCEL 2003. Nếu EX 2007 thì mình dùng hàm SUMIFS. Mong đc chỉ giúp.
B2=SUMIFS(Sheet1!$C$2:$C$20,Sheet1!$B$2:$B$20,Sheet2!B$1,Sheet1!$A$2:$A$20,Sheet2!$A2)
 
Chỉnh sửa lần cuối bởi điều hành viên:
Mình là member mới mong các anh chị nào có kinh nghiệm giúp đỡ minh liên kết wordsheet gửi kèm .Làm sao khi nhập vào bảng nhập xuất thì nó tự động cập nhật vào bảng tiến độ sx hàng ngày (trong today in và today out)theo thứ tự các màu số lượng của ngày hôm đó vì mỗi ngày em phải nhập số liệu để báo cáo mà phải nhập hai lần(nhập vào nhập xuất hàng ngày sau đó nhập vào today in và today out)rất mất thời gian mong anh chị giúp đỡ cảm ơn anh chị nhiềuView attachment 64573
ý bạn có phải như thế này ko!
 

File đính kèm

nhưng giả sử mình theo dõi công nợ có rất nhiều khách hàng va nhiều loại sản phẩm thi mình lam thế nào để kết hợp được ct tính nhanh và chuẩn xác.mình muốn làm trong 1 file có 2 sheet , sheet1 mình nhập số liệu và sheet2 mình muốn nó nhẩy được tổng công nợ của từng khách hàng.Rất mong các bạn giúp đõ minh
Thanks!
 
nhưng giả sử mình theo dõi công nợ có rất nhiều khách hàng va nhiều loại sản phẩm thi mình lam thế nào để kết hợp được ct tính nhanh và chuẩn xác.mình muốn làm trong 1 file có 2 sheet , sheet1 mình nhập số liệu và sheet2 mình muốn nó nhẩy được tổng công nợ của từng khách hàng.rất mong các bạn giúp đõ minh
thanks!
bạn thử đưa file mẫu và kết quả mong muốn thì có nhiều người giúp. Mà lại không mất công trả lời nhiều lần
 
Bạn siêu quá nhỉ, giúp mình chuyện này với:
Do hay gặp trường hợp này khi xuất 1 file từ Foxpro qua Excel nên mình viết một Hàm như thế này cho tiện:

Public Function TachNgay(NgaySinh As String)
Dim Ng As String, T As String, N As String
Ng = Left(NgaySinh, 2)
T = "/" & Mid(NgaySinh, 3, 2)
N = "/19" & Right(NgaySinh, 2)
TachNgay = Ng & T & N
End Function

Để tách một chuỗi "120893" ra thành 12/08/1993 hoặc chuỗi "010592" thành 01/05/1992
nhưng bị báo lỗi, chắc là chưa đúng, bạn có thương thì sửa dùm cho mình với
Cảm tạ nhiều nhiều!
 
Bạn siêu quá nhỉ, giúp mình chuyện này với:
Do hay gặp trường hợp này khi xuất 1 file từ Foxpro qua Excel nên mình viết một Hàm như thế này cho tiện:

Public Function TachNgay(NgaySinh As String)
Dim Ng As String, T As String, N As String
Ng = Left(NgaySinh, 2)
T = "/" & Mid(NgaySinh, 3, 2)
N = "/19" & Right(NgaySinh, 2)
TachNgay = Ng & T & N
End Function

Để tách một chuỗi "120893" ra thành 12/08/1993 hoặc chuỗi "010592" thành 01/05/1992
nhưng bị báo lỗi, chắc là chưa đúng, bạn có thương thì sửa dùm cho mình với
Cảm tạ nhiều nhiều!
Bài này cần chi dùng VBA cho cao siêu
ví dụ A1 = 120893
công thức
DATEVALUE(LEFT(A1,2)&"/"&MID(A1,3,2)&"/"&RIGHT(A1,2))
như vậy là đủ rồi
 
Bạn siêu quá nhỉ, giúp mình chuyện này với:
Do hay gặp trường hợp này khi xuất 1 file từ Foxpro qua Excel nên mình viết một Hàm như thế này cho tiện:

Public Function TachNgay(NgaySinh As String)
Dim Ng As String, T As String, N As String
Ng = Left(NgaySinh, 2)
T = "/" & Mid(NgaySinh, 3, 2)
N = "/19" & Right(NgaySinh, 2)
TachNgay = Ng & T & N
End Function

Để tách một chuỗi "120893" ra thành 12/08/1993 hoặc chuỗi "010592" thành 01/05/1992
nhưng bị báo lỗi, chắc là chưa đúng, bạn có thương thì sửa dùm cho mình với
Cảm tạ nhiều nhiều!
Bài này cần chi dùng VBA cho cao siêu
ví dụ A1 = 120893
công thức
DATEVALUE(LEFT(A1,2)&"/"&MID(A1,3,2)&"/"&RIGHT(A1,2))
như vậy là đủ rồi
Cả công thức lẫn code đều sai
Nhưng tôi đang nghĩ: Câu hỏi về ngày tháng này liên quan gì đến chủ đề SUMPRODUCT của topic này vậy?
 
Bản chất vẫn như nhau, chỉ là cách thể hiện của mỗi người.

Tuy nhiên, trong các kiểu thể hiện hàm SUMPRODUCT thì cách dùng dấu nhân là ưu việt nhất:
- Khỏi lo dấu phân cách khác nhau trên từng máy tính (có máy dùng dấu phẩy, có máy dùng dấu chấm phẩy)
- Có thể thực hiện tính toán trên các mảng không cùng kích thước <--- Và đây chính là ưu điểm cần quan tâm của nó
Chính vì lẽ đó, bây giờ học SUMPRODUCT, tốt nhất bạn nên dùng dấu nhân, mấy dấu khác khỏi cần quan tâm đến làm gì
(Có người nói cách dùng dấu -- sẽ cho tốc độ nhanh hơn dùng dấu * , Tôi thì không tin gì mấy, nếu có thì chắc là chênh lệch cũng không đáng kể. Với dữ liệu lớn, SUMPRODUCT nhiều điều kiện thì 2 cách này cũng "lết bánh" như nhau mà thôi)
Anh có thể cho ví dụ sử dụng để nhân 2 mảng không cùng kích thước không ? mà nếu dùng "dấu phẩy" không làm được
 
Anh có thể cho ví dụ sử dụng để nhân 2 mảng không cùng kích thước không ? mà nếu dùng "dấu phẩy" không làm được
Xem hình ví dụ:

untitled.JPG

Bài toán đặt ra: Tính tổng cột màu vàng với điều kiện có dấu check "X" ở cột màu xanh
Ta dùng SUMPRODUCT nhu sau:
PHP:
=SUMPRODUCT(($B$2:$G$21="X")*($A$2:$A$21))
Đây là phép tính trên 2 mảng không cùng kích thước (B2:G21 có 20 dòng, 6 cột còn A2:A21 có 20 dòng nhưng chỉ có 1 cột)
Trường hợp này nếu không dùng dấu nhân mà dùng dấu phẩy có được không?
 
Xem hình ví dụ:



Bài toán đặt ra: Tính tổng cột màu vàng với điều kiện có dấu check "X" ở cột màu xanh
Ta dùng SUMPRODUCT nhu sau:
PHP:
=SUMPRODUCT(($B$2:$G$21="X")*($A$2:$A$21))
Đây là phép tính trên 2 mảng không cùng kích thước (B2:G21 có 20 dòng, 6 cột còn A2:A21 có 20 dòng nhưng chỉ có 1 cột)
Trường hợp này nếu không dùng dấu nhân mà dùng dấu phẩy có được không?

Em ngồi kiểm tra với nhiều cách, xem trong Help cũng không thể làm dấu phẩy thay cho dấu nhân.

Dấu nhân làm như là thay AND còn dấu cộng thay cho OR thì phải, nếu vậy thì khó có thể thay dấu nhân thành dấu phẩy trong trường hợp này.

Lưu ý với bài này, nếu như dấu X cùng hàng thì nó lại cộng thêm n lần cùng hàng.
 
Lần chỉnh sửa cuối:
Lưu ý với bài này, nếu như dấu X cùng hàng thì nó lại cộng thêm n lần cùng hàng.
Cám ơn anh ndu96081631

Bản chất của * là nhân 2 mảng thì có nghĩa là một chiều nào đó của 2 mảng đó phải có số phần tử = nhau. Còn "phép nhân" của sumproduct là nhân các véc tơ (nghĩa là chỉ có thê là mảng 1 chiều)
 
Lần chỉnh sửa cuối:
Tính tổng có 2 điều kiện

Mình cần tính tổng số tiền:

- Tất cả các Công ty và đơn vị là "VND"
- Tất cả các Công ty và đơn vị là "USD"
- Tất cả các Doanh nghiệp và đơn vị là "VND"
- Tất cả các Doanh nghiệp và đơn vị là "USD"

Các bạn giúp đỡ mình với. Cám ơn các bạn rất nhiều.
 

File đính kèm

Mình cần tính tổng số tiền:

- Tất cả các Công ty và đơn vị là "VND"
- Tất cả các Công ty và đơn vị là "USD"
- Tất cả các Doanh nghiệp và đơn vị là "VND"
- Tất cả các Doanh nghiệp và đơn vị là "USD"

Các bạn giúp đỡ mình với. Cám ơn các bạn rất nhiều.
Bạn xem file thử nhé
 

File đính kèm

Cám ơn bạn Luc Van rất nhiều. trong thực tế dữ liệu rất nhiều không thể nhập tay được với lại mình muốn nó tự động, khi đỗ dữ liệu vào sẽ cho ra kết quả liền, không cần phải làm thêm bước nào nữa. Bạn có cách nào khác không, chỉ mình với. Thanks bạn nhiều lắm.
 
Web KT

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

Back
Top Bottom