Tính tổng các chỉ tiêu của từng công ty theo từng tháng (năm) (1 người xem)

  • Thread starter Thread starter LinDan
  • Ngày gửi Ngày gửi
Liên hệ QC

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

LinDan

Thành viên tiêu biểu
Tham gia
8/2/12
Bài viết
412
Được thích
111
Tôi có số liệu đầu vào nhập
270312DV.png


Cần tổng hợp số liệu ứng với từng công ty theo từng tháng như sau:
270312KQ.png


Nhờ các bác trên GPE giúp tôi 1 tay, xin cảm ơn rất nhiều
 

File đính kèm

Lần chỉnh sửa cuối:
Cảm ơn thày rất nhiều, lỗi do bản thân tôi không nêu rõ đầu bài khi nhờ diễn đàn, chẳng là Pivot tôi biết làm rồi thày ah, tôi đang cần học VBA, phiền thày và mọi người giúp làm bằng phương pháp VBA để tôi học hỏi với.
 
Upvote 0
Cảm ơn thày rất nhiều, lỗi do bản thân tôi không nêu rõ đầu bài khi nhờ diễn đàn, chẳng là Pivot tôi biết làm rồi thày ah, tôi đang cần học VBA, phiền thày và mọi người giúp làm bằng phương pháp VBA để tôi học hỏi với.
Có thể dùng AutoFilter để giải quyết nhưng ở đây mình làm thử ADO. Bạn chỉnh lại tên cột tí nhé.

Mã:
Public cnn As New ADODB.Connection
Sub Moketnoi()
  With cnn
    .ConnectionString = "Provider= Microsoft.Jet.OLEDB.4.0; data source=" & ThisWorkbook.Path & _
                        "\" & ThisWorkbook.Name & ";Extended Properties=Excel 8.0;"
    .CursorLocation = adUseClient
    .Open
  End With
    
End Sub

Sub FillList()
Moketnoi
On Error Resume Next
Dim lsSQL As String, r As Integer
Dim lrs As New ADODB.Recordset
    With Sheet3
        lsSQL = "select NgayThang, TenCongTy, DoanhThu, ChiPhi " & _
                        "From [XN1$] " & _
                        "Where month(NgayThang) =" & .Range("B1") & " and TenCongTy like '" & _
                        IIf(Len(.Range("B2")) = 0, "%", .Range("B2")) & "' " & _
                        "ORDER BY [NgayThang] "

        lrs.Open lsSQL, cnn, adOpenStatic, adLockReadOnly
        .Range("A5:D6000").ClearContents
        .Range("A5").CopyFromRecordset lrs
        r = .Range("A65000").End(xlUp).Row + 1
        .Range("B" & r) = "T" & ChrW(7893) & "ng C" & ChrW(7897) & "ng"
        .Range("C" & r).FormulaR1C1 = "=SUM(R[-" & r - 4 & "]C:R[-1]C)"
        .Range("D" & r).FormulaR1C1 = "=SUM(R[-" & r - 4 & "]C:R[-1]C)"
        
    End With
lrs.Close
cnn.Close

End Sub

Bạn tham khảo thêm file đính kèm nhe
 

File đính kèm

Upvote 0
Chà chà, thày làm cách cao siêu quá, tôi lại chưa có chút khái niệm gì về cái này cả; cứ tạm áp dụng để sài cái đã rồi nghiên cứu sau (nếu thày rỗi, phiền thày hộ cho cả cách AutoFilter nữa nhé).
 
Upvote 0
Upvote 0
Web KT

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

Back
Top Bottom