Giúp tính tổng theo nhiều điều kiện (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

thaocnc

Thành viên mới
Tham gia
21/10/07
Bài viết
45
Được thích
3
Chào các Anh Chị.
Tôi có bài toán tính tổng theo nhiều điều kiện mà chưa biết làm như thế nào,tôi gửi file kèm yêu cầu cụ thể mong các anh chị giúp đỡ
 

File đính kèm

Sao có không cho sử dụng các tính năng filter, subtotal của excel? bắt bí nhau hả?

chép đoạn code sau vô chạy thử coi

Sub sumif()

For j = 2 To 4
If Cells(3, j).Value <> "" Then
For i = 4 To 12
If Cells(i, j).Value = Cells(3, j).Value Then
Sum = Range("G" & i).Value
KQ = KQ + Sum
MsgBox "" & KQ
End If
Next i
End If
Next j
Range("G3") = KQ


End Sub
 
Upvote 0
Chào bạn
Đoạn code trên nếu tính theo 1 điều kiện thì được rồi nhưng nếu là 2 hoặc 3 điều kiện thì chưa đúng ý mình vì ở đây mình cần là
-Nhập vào điều kiện ở C3,D3,E3 tự động lọc tìm (như kiểu lọc Filter) để chọn ra giá trị chung ,tính tổng các giá trị còn lại ở G4:G13 rồi cho hiện kết quả ở G3
-Có cách nào để khi nhập xong từng giá trị C3:E3 thì ở G3 tự động hiện kết quả mà không cần chạy macro thủ công không.
Cám ơn các bạn.

P/S Nếu dùng VBA thì có thể dùng filter, subtotal
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử cái này, khi double-click thì macro sẽ chạy
 

File đính kèm

Upvote 0
Bạn dùng công thức này:
=SUMIFS($G$4:$G$12;$B$4:$B$12;IF(B3<>"";B3;"<>""");$C$4:$C$12;IF(C3<>"";C3;"<>""");$D$4:$D$12;IF(D3<>"";D3;"<>"""))
nếu dùng Excel 2007
 
Upvote 0
có thể thay thế hàm sumifs bằng sumproduct, nhưng trong trường hợp có một hoặc 2 ô bị trống thì mình chưa xử lý được bạn trung.aol có thể giúp không?
=SUMPRODUCT(($B$4:$B$12=$B$3)*($C$4:$C$12=$C$3)*($D$4:$D$12=$D$3)*($G$4:$G$12))
 
Upvote 0
Hi vọng công thức này có thể được:
=IF(AND(B3<>"";C3<>"";D3<>"");SUMPRODUCT((B4:B12=B3)*(C4:C12=C3)*(D4:D12=D3)*(G4:G12));IF(AND(B3<>"";C3<>"";D3="");SUMPRODUCT((B4:B12=B3)*(C4:C12=C3)*(G4:G12));IF(AND(B3<>"";D3<>"";C3="");SUMPRODUCT((B4:B12=B3)*(D4:D12=D3)*(G4:G12));IF(AND(B3="";C3<>"";D3<>"");SUMPRODUCT((D4:D12=D3)*(C4:C12=C3)*(G4:G12));IF(B3<>"";SUMPRODUCT((B4:B12=B3)*(G4:G12));IF(C3<>"";SUMPRODUCT((C4:C12=C3)*(G4:G12));IF(D3<>"";SUMPRODUCT((D4:D12=D3)*(G4:G12));SUM(G4:G12))))))))
 
Upvote 0
bạn có thể thay thế event để chạy macro "Workbook_SheetBeforeDoubleClick" bằng "Workbook_SheetSelectionChange" như sau:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Range("E3")) Is Nothing Then

Run ("Macro1")
End If
End Sub

như vậy bất cứ khi nào bạn tác động vào cell E3 thì macro sẻ chạy
 
Upvote 0
Web KT

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

Back
Top Bottom