Góp thêm 2 công thức khác:Xin chào các bạn,
Nhờ các bạn giúp đỡ trường hợp tính tổng nhiều điều kiện theo file đính kèm này.
Cảm ơn
K6=SUMPRODUCT((TEXT($D$6:$D$22,"mm/yyyy")=TEXT($J6,"mm/yyyy"))*($E$6:$E$22=K$5),($F$6:$F$22))
Hoặc K6=SUMPRODUCT((EOMONTH(OFFSET($D$6,ROW($1:$17)-1,),-1)+1=$J6)*($E$6:$E$22=K$5),($F$6:$F$22))
Góp thêm 2 công thức khác:
Fill xuống rồi copy qua phải.Mã:K6=SUMPRODUCT((TEXT($D$6:$D$22,"mm/yyyy")=TEXT($J6,"mm/yyyy"))*($E$6:$E$22=K$5),($F$6:$F$22)) Hoặc K6=SUMPRODUCT((EOMONTH(OFFSET($D$6,ROW($1:$17)-1,),-1)+1=$J6)*($E$6:$E$22=K$5),($F$6:$F$22))
Chúc bạn ngày vui.
Em cố theo anh. he he.Tổng hợp số lượng theo điều kiện tên và tháng
K6=SUMPRODUCT((MONTH($D$6:$D$22)=MONTH($J6))*(YEAR($D$6:$D$22)=YEAR($J6))*($E$6:$E$22=K$5),$F$6:$F$22)
Đúng vậy em, nhiều khi phòng ngừa chủ thớt gõ: J6= 01/01/2016, hoặc J7= 01/02/2018 anh em mình sẽAnh xét cả năm...
Em cố theo anh. he he.
Mã:K6=SUMPRODUCT((MONTH($D$6:$D$22)=MONTH($J6))*(YEAR($D$6:$D$22)=YEAR($J6))*($E$6:$E$22=K$5),$F$6:$F$22)






Đúng vậy em, nhiều khi phòng ngừa chủ thớt gõ: J6= 01/01/2016, hoặc J7= 01/02/2018 anh em mình sẽ
Khà khà khà.
Chúc em ngày vui.![]()

Thì bởi!Chủ thớt yêu cầu tới đâu thì làm tới đó. Làm thừa chưa chắc đã đúng ý ạ.
Chúc anh ngày vui!![]()





Đúng vậy em, nhiều khi phòng ngừa chủ thớt gõ: J6= 01/01/2016, hoặc J7= 01/02/2018 anh em mình sẽ
Khà khà khà.
Chúc em ngày vui.![]()
K6=SUMIFS($F$6:$F$22;$E$6:$E$22;K$5;$D$6:$D$22;">="&$J6;$D$6:$D$22;"<="& DATE(YEAR($J6);MONTH($J6)+1;0))




Xin được góp vui cùng mọi người công thức mảng:Xin chào các bạn,
Nhờ các bạn giúp đỡ trường hợp tính tổng nhiều điều kiện theo file đính kèm này.
Cảm ơn
Khoái có anh Ba Tê góp vui. Khà khà.Nếu xét tháng năm thì SUMIFS() nhìn cũng dễ hiểu:
PHP:K6=SUMIFS($F$6:$F$22;$E$6:$E$22;K$5;$D$6:$D$22;">="&$J6;$D$6:$D$22;"<="& DATE(YEAR($J6);MONTH($J6)+1;0))



Khoái có anh Ba Tê góp vui. Khà khà.
Cái đoạn cuối DATE(YEAR($J6);MONTH($J6)+1;0) chắc hiểu: vầy EDATE($J6;1)-1 hoặc EOMONTH($J6,0), thì đúng ý anh không!
Chúc anh ngày vui.![]()
Xin chào các bạn,
Các bạn giúp cho tôi bài tập trong file đính kèm này với.
Cảm ơn


Bạn dùng CT này tại E6:Không thêm cột phụ ạ.
E6=SUMPRODUCT((Cong!$E$4:$E$15=D6)*SUMIF(Dulieu!$C$4:$C$6,Cong!$C$4:$C$15,Dulieu!$D$4:$D$6)*Cong!$D$4:$D$15)
Bạn dùng CT này tại E6:
Fill xuống!!!PHP:E6=SUMPRODUCT((Cong!$E$4:$E$15=D6)*SUMIF(Dulieu!$C$4:$C$6,Cong!$C$4:$C$15,Dulieu!$D$4:$D$6)*Cong!$D$4:$D$15)


Không có gì bạn!!!!!!!!!Cảm ơn eke_rula nhé.![]()
Không có gì bạn!!!!!!!!!



Không dùng cột phụ thì dùng ct mảng, ct mảng mấy chục ngàn dòng chạy chậm lắm, bạn dùng cột phụ bên sheet Công dùng Vlookup()* , rồi sumif ben sheet tổng cộng sẽ nhẹ hơn nhiều đấy!!!eke_rula ơi, còn công thức nào khác không,
công thức này sum ở mảng dữ liệu vài chục nghìn dòng máy tính rít lên như máy cày bạn ah.
%Cacualation trên thanh trạng thái mãi mới lên được 1 tý. chạy từ nãy giờ mới đc 11% bạn ơi.![]()
Không dùng cột phụ thì dùng ct mảng, ct mảng mấy chục ngàn dòng chạy chậm lắm, bạn dùng cột phụ bên sheet Công dùng Vlookup()* , rồi sumif ben sheet tổng cộng sẽ nhẹ hơn nhiều đấy!!!


Bạn đổi sang công thức mảng này xem, chạy nhanh hơn không!!!Cảm ơn bạn, mới đầu mình cũng định như vậy nhưng không lường đến vấn đề này.
OK, muộn rồi ngủ thôi bạn ơi.
Cảm ơn bạn nhiều.
=SUM(IF(Cong!$E$4:$E$15=D6,SUMIF(Dulieu!$C$4:$C$6,Cong!$C$4:$C$15,Dulieu!$D$4:$D$6)*Cong!$D$4:$D$15))
Cảm ơn eke_rulaBạn đổi sang công thức mảng này xem, chạy nhanh hơn không!!!
Ctrl+Shift+Enter rồi fill xuống!!!Mã:=SUM(IF(Cong!$E$4:$E$15=D6,SUMIF(Dulieu!$C$4:$C$6,Cong!$C$4:$C$15,Dulieu!$D$4:$D$6)*Cong!$D$4:$D$15))
Yêu cầu "Tính tổng ô J20 thỏa mãn các điều kiện tại cột M và N"? Cột N có cái gì?Xin chào các bạn,
các bạn xem giúp tôi công thức trong file kèm này với.
Cảm ơn nhiều
Public Function SumIf_GPE(Rng As Range, RTen As Range, Rlop As Range) As Double
Dim sArr(), R1 As Range, R2 As Range, I As Long, J As Long
sArr = Rng.Value
With CreateObject("Scripting.Dictionary")
For Each R1 In RTen
For Each R2 In Rlop
.Item(R1.Value & "#" & R2.Value) = ""
Next R2
Next R1
For I = 1 To UBound(sArr)
If .Exists(sArr(I, 1) & "#" & sArr(I, 2)) Then SumIf_GPE = SumIf_GPE + sArr(I, 3)
Next I
End With
End Function
=SumIf_GPE(C5:E20;L6:L8;M6:M7)
Yêu cầu "Tính tổng ô J20 thỏa mãn các điều kiện tại cột M và N"? Cột N có cái gì?
Rõ là "không tôn trọng" bài viết của chính mình.
Hàm tự tạo:
Công thức ô J4PHP:Public Function SumIf_GPE(Rng As Range, RTen As Range, Rlop As Range) As Double Dim sArr(), R1 As Range, R2 As Range, I As Long, J As Long sArr = Rng.Value With CreateObject("Scripting.Dictionary") For Each R1 In RTen For Each R2 In Rlop .Item(R1.Value & "#" & R2.Value) = "" Next R2 Next R1 For I = 1 To UBound(sArr) If .Exists(sArr(I, 1) & "#" & sArr(I, 2)) Then SumIf_GPE = SumIf_GPE + sArr(I, 3) Next I End With End Function
PHP:=SumIf_GPE(C5:E20;L6:L8;M6:M7)
Như anh Ba Tê (thành viên kỳ cựu) hướng dẫn bạn, và qua những bài phía trên ma eke_rula gửi cho bạn, tôi có gợi ý bạn nên tìm hiểu kỹ các công thức, nghiệm rồi sẽ áp dụng được cho sự thay đổi như yêu cầu mới này.Xin lỗi Ba Tê, tôi nhìn nhầm !
Cảm ơn bạn đã giúp đỡ, kết quả đúng như tôi mong muốn rồi nhưng bài này có cách nào giải quyết được bằng công thức không bạn?
Như anh Ba Tê (thành viên kỳ cựu) hướng dẫn bạn, và qua những bài phía trên ma eke_rula gửi cho bạn, tôi có gợi ý bạn nên tìm hiểu kỹ các công thức, nghiệm rồi sẽ áp dụng được cho sự thay đổi như yêu cầu mới này.
Gợi ý công thức: SUMPRODUCT(SUMIFS(.............))
Chúc bạn ngày vui.
Như anh Ba Tê (thành viên kỳ cựu) hướng dẫn bạn, và qua những bài phía trên ma eke_rula gửi cho bạn, tôi có gợi ý bạn nên tìm hiểu kỹ các công thức, nghiệm rồi sẽ áp dụng được cho sự thay đổi như yêu cầu mới này.
Gợi ý công thức: SUMPRODUCT(SUMIFS(.............))
Chúc bạn ngày vui.


Bài này giải bằng mảng 2 chiều bạn phải thêm Tranpose thì CT mói hiểu được, bạn dùng CT mảng sau:Theo gợi ý của bạn tôi đã thử công thức sau nhưng kết quả không chính xác:
J20=SUMPRODUCT(SUMIFS($E$5:$E$20,$C$5:$C$20,$L$6:$L$8,$D$5:$D$20,$M$6:$M$7))
Mong bạn chỉ dẫn thêm.
Cảm ơn.
=SUM(SUMIFS(E5:E20,C5:C20,L6:L8,D5:D20,TRANSPOSE(M6:M7)))
Bài này giải bằng mảng 2 chiều bạn phải thêm Tranpose thì CT mói hiểu được, bạn dùng CT mảng sau:
Bấm Ctrl+Shift+Enter!!!PHP:=SUM(SUMIFS(E5:E20,C5:C20,L6:L8,D5:D20,TRANSPOSE(M6:M7)))


Được bạn ạ, một trong 2 cái dùng Tranpose là được!!!Cảm ơn eke_rula
Kết quả chuẩn rồi bạn ơi, bạn có thể giải thích cho mình hiểu thêm tại sao lại TRANSPOSE(M6:M7), mà không TRANSPOSE(L6:L8) cùng nữa, mình thấy đều là 2 mảng điều kiện tương tự như nhau.
Nếu đổi lại TRANSPOSE(M6:M7) thành TRANSPOSE(L6:L8) thì có được không bạn mình đã thử thấy nó vẫn trả kết quả đúng bạn ah.
Cảm ơn eke_rula thêm một lần nữa
Được bạn ạ, một trong 2 cái dùng Tranpose là được!!!
Không dùng Tranpose thì nó đang là mảng dọc, dùng Tranpose nó sẽ chuyển mảng dọc thành mảng ngang, bài này mình nói là phải dùng mảng 2 chiều để giải, nên ct phải có cả mảng ngang và mảng dọc mới tạo được mảng 2 chiều, dùng cả 2 tranpose hoặc cả 2 không dùng transpose thì giống tương tự công thức của bạn làm ở trên sẽ bị lỗi, vì cùng đều là mảng ngang hoặc mảng dọc!!!
Bạn có thể đọc bài mảng 2 chiều ở đây mình có ví dụ 1 bài tương tự như bài có bạn, và giải thích:
http://www.giaiphapexcel.com/forum/showthread.php?122685-Đố-vui-về-công-thức-mảng-2-chiều!!/page6
Bài #53, khúc nói về mảnh 2 chiều!!!
Hi vọng giúp được bạn!!!


Bạn đọc cái link mình gửi đi!!!Rất chu đáo và chi tiết, tôi sẽ cố gắng.
eke_rula cho mình hỏi thêm đối với bài toán có dấu hiệu nhận biết như thé nào nào thì dùng mảng 2 chiều?
Cảm ơn bạn nhiều.
Bạn đọc cái link mình gửi đi!!!
Xin chào các bạn,
Tôi sử dụng hàm SUMIFS cho trường hợp trong file đính kèm thì bị lỗi.
Nhờ các bạn sửa giúp ạ.
Cảm ơn
L6=SUMPRODUCT((MONTH($D$6:$D$22)=MONTH($K6))*($E$6:$E$22=L$5)*($F$6:$I$22))
L6=SUMPRODUCT((MONTH($D$6:$D$22)=MONTH($K6))*(YEAR($D$6:$D$22)=YEAR($K6))*($E$6:$E$22=L$5)*($F$6:$I$22))
Thử công thức này.
Nếu cột D chỉ trong 1 năm:
Nếu cột D có nhiều năm thì:PHP:L6=SUMPRODUCT((MONTH($D$6:$D$22)=MONTH($K6))*($E$6:$E$22=L$5)*($F$6:$I$22))
PHP:L6=SUMPRODUCT((MONTH($D$6:$D$22)=MONTH($K6))*(YEAR($D$6:$D$22)=YEAR($K6))*($E$6:$E$22=L$5)*($F$6:$I$22))
theo dữ liệu file của bạnCảm ơn Ba Tê đã giúp đỡ:
Tôi xin lỗi vì chưa nêu rõ vấn đề nên công thức trên của bạn tôi chưa thể tự sửa theo ý mình được, tôi muốn sử dụng công thức giống như bài 8 của bạn:
http://www.giaiphapexcel.com/forum/...Tính-tổng-nhiều-điều-kiện&p=767803#post767803
Để có thể lấy số liệu từ 1 thời điểm đến 1 thời điểm.
Bạn xem lại file kèm và giúp tôi nhé.
Cảm ơn
M6 =SUMPRODUCT(($E$6:$E$22=M$5)*($D$6:$D$22>=$K6)*($D$6:$D$22<=EOMONTH($L6,0))*($F$6:$F$22+$G$6:$G$22+$H$6:$H$22+$I$6:$I$22))