Nhờ trợ giúp tính tổng theo nhiều điều kiện

Liên hệ QC

toangm

Thành viên mới
Tham gia
17/4/08
Bài viết
32
Được thích
7
Em nhờ các anh chị giúp viết code VBA để xuất được báo cáo ra từng kho theo nhiều điều kiện như tệp tin em đính kèm.
Xin cảm ơn!
1652152653970.png
 

File đính kèm

  • TinhTong_TheoNhieuDieuKien.xlsm
    48 KB · Đọc: 10
Làm đại trong khi chờ các cao thủ ra tay:
PHP:
Option Explicit
Sub test()
Dim i&, j&, lr&, nam&, kho As String, thang, CL, arr(1 To 12, 1 To 4)
If ActiveSheet.Name = "Data" Then
    MsgBox "Chon sheet kho"
    Exit Sub
End If
    kho = Range("B2").Value
    nam = Range("B3").Value
    thang = Range("B5:B16").Value
    CL = Range("C4:F4").Value
With Worksheets("Data")
    lr = .Cells(Rows.Count, "M").End(xlUp).Row
    For i = 1 To 12
        For j = 1 To 4
            arr(i, j) = WorksheetFunction.CountIfs(.Range("M6:M" & lr), kho, .Range("J6:J" & lr), nam, _
            .Range("I6:I" & lr), thang(i, 1), .Range("G6:G" & lr), CL(1, j) & "*")
        Next
    Next
End With
Range("C5").Resize(i, j).Value = arr
Range("C17:F17").FormulaR1C1 = "=sum(R[-12]C:R[-1]C)"
Range("G5:G17").FormulaR1C1 = "=sum(RC[-4]:RC[-1])"
End Sub
 

File đính kèm

  • TinhTong_TheoNhieuDieuKien.xlsm
    54.9 KB · Đọc: 9
Upvote 0
Làm đại trong khi chờ các cao thủ ra tay:
PHP:
Option Explicit
Sub test()
Dim i&, j&, lr&, nam&, kho As String, thang, CL, arr(1 To 12, 1 To 4)
If ActiveSheet.Name = "Data" Then
    MsgBox "Chon sheet kho"
    Exit Sub
End If
    kho = Range("B2").Value
    nam = Range("B3").Value
    thang = Range("B5:B16").Value
    CL = Range("C4:F4").Value
With Worksheets("Data")
    lr = .Cells(Rows.Count, "M").End(xlUp).Row
    For i = 1 To 12
        For j = 1 To 4
            arr(i, j) = WorksheetFunction.CountIfs(.Range("M6:M" & lr), kho, .Range("J6:J" & lr), nam, _
            .Range("I6:I" & lr), thang(i, 1), .Range("G6:G" & lr), CL(1, j) & "*")
        Next
    Next
End With
Range("C5").Resize(i, j).Value = arr
Range("C17:F17").FormulaR1C1 = "=sum(R[-12]C:R[-1]C)"
Range("G5:G17").FormulaR1C1 = "=sum(RC[-4]:RC[-1])"
End Sub
Cảm ơn anh đã giúp, em sẽ làm theo hướng này của anh.
Ý tưởng của em lúc đầu muốn xuất luôn có bao nhiêu kho là sinh ra luôn bấy nhiêu sheet "Kho 1, Kho 2, Kho..." chỉ chọn mỗi năm cần báo cáo thôi.
Một lần nữa cảm ơn anh đã giúp đỡ!
 
Upvote 0
Cảm ơn anh đã giúp, em sẽ làm theo hướng này của anh.
Ý tưởng của em lúc đầu muốn xuất luôn có bao nhiêu kho là sinh ra luôn bấy nhiêu sheet "Kho 1, Kho 2, Kho..." chỉ chọn mỗi năm cần báo cáo thôi.
Một lần nữa cảm ơn anh đã giúp đỡ!
Dupplicate sheet Kho 1 và sửa thành kho 2 thôi.
Còn không thì thêm vào code phần sheets.Add và tự động đặt tên và lấy điều kiện theo tên sheet luôn.
 
Upvote 0
Nếu tiêu đề chịu khó dùng chỉ một dòng (thay vì merge 2 dòng) thì baiof này dùng Pivot Table, khỏi cốt kiếc.
 
Upvote 0
Web KT

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

Back
Top Bottom