trong biểu này mình đã tách chi phí của công ty được 6 tháng và phân từng vật tư thành nhóm bằng mã tk ở cột D ; Bình thường có thể dùng filter lọc những tk giống nhau rồi cộng ; nhưng mình muốn hỏi làm cách nào để máy tự tìm những vật tư có cùng tk ở cột D rồi đối chiếu với giá trị bằng tiền ở cột B sau đó đưa ra 1 bảng ( Ví dụ Vật tư có tk 74 có tổng = ??? ; 75 = ???? ) hay không. Để mình có thể tiện cộng tổng 6 tháng các vật tư có cùng tài khoản lại với nhau

Cám ơn mọi người rất nhiều ^^!
Đặt lại tiêu đề cột, dùng ado như sau:
[GPECODE=sql]Sub GopSheet_HLMT()
Dim cn As Object, rst As Object, cat As Object, tbl As Object, str$, str1 As String
Set cn = CreateObject("ADODB.Connection")
Set cat = CreateObject("ADOX.Catalog")
Set tbl = CreateObject("ADOX.Table")
Set rst = CreateObject("ADODB.Recordset")
With cn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & _
";Extended Properties=""Excel 8.0;HDR=Yes;"";"
.Open
End With
cat.ActiveConnection = cn
For Each tbl In cat.Tables
If Right(Replace(tbl.Name, "'", ""), 1) = "$" And tbl.Name <> "Ketqua$" And tbl.Name <> "bm$" Then
str = str & " union all SELECT TENVT,MA,TIEN,TIEN1 from [" & Replace(Replace(tbl.Name, "$", ""), "'", "") & "$] "
str1 = Right(str, Len(str) - 10)
End If
Next
With rst
.ActiveConnection = cn
.Open "select [TENVT],MA,sum(TIEN),sum(TIEN1) from (" & str1 & ") group by ma,tenvt having ma is not null"
End With
With Sheets("KetQua")
.[A2:IV65000].ClearContents
.[A2].CopyFromRecordset rst
End With
rst.Close: Set rst = Nothing
cn.Close: Set cn = Nothing
Set cat = Nothing: Set tbl = Nothing
End Sub
[/GPECODE]