Thử dùng pivot table xem.Chào anh em,
Hiện mình cần tính tổng theo 3 điều kiện như tiêu đề. Mình đã thử dùng SUMPRODUCT nhưng kết quả không như ý, SUMIFS cũng không ok. Anh em nào xem dùm file và hỗ trợ tiếp.
Xin cám ơn!
Cho bạn một code về ADO:Chào anh em,
Hiện mình cần tính tổng theo 3 điều kiện như tiêu đề. Mình đã thử dùng SUMPRODUCT nhưng kết quả không như ý, SUMIFS cũng không ok. Anh em nào xem dùm file và hỗ trợ tiếp.
Xin cám ơn!
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A2:D10000]) Is Nothing Then Exit Sub
Call filter
End Sub
Sub filter()
Set ado1 = CreateObject("ADODB.connection"): Set ado2 = CreateObject("ADODB.recordset")
With ado1
If Val(Application.Version) < 12 Then
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=""Excel 8.0;HDR=No;"
Else
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=""Excel 12.0;HDR=No;"";"
End If
.Open
End With
strsql = "Select F1 as NT, F4&space(0) as officecode, F2 as laisuat, sum(F3) as sodu from [Sheet1$A2:D10000] where F3>0 group by F1,F2,F4"
ado2.Open strsql, ado1, 3, 1
[H1] = "NT": [J1] = "laisuat": [I1] = "Officecode": [K1] = "Sodu": [H1:K1].Font.Bold = True
[h2].CopyFromRecordset ado2
End Sub
Em tính dùng ct thay vì Pivot table vì data nó thay đổi liên tục dùng ct sẽ tiện hơn anh. Hoặc có cao thủ thì vba cũng ok
Em tính dùng ct thay vì Pivot table vì data nó thay đổi liên tục dùng ct sẽ tiện hơn anh. Hoặc có cao thủ thì vba cũng ok
Công thức Sumproduct tính được mà bạn.Chào anh em,
Hiện mình cần tính tổng theo 3 điều kiện như tiêu đề. Mình đã thử dùng SUMPRODUCT nhưng kết quả không như ý, SUMIFS cũng không ok. Anh em nào xem dùm file và hỗ trợ tiếp.
Xin cám ơn!