Xin giúp đỡ về thống kê các báo cáo đến kỳ

Liên hệ QC

nguyet1982db

Thành viên chính thức
Tham gia
10/12/14
Bài viết
92
Được thích
4
Mong các bác giúp đỡ viết hàm thống kê các báo cáo đến hạn theo điều kiện (Em đã ghi chi tiết trong file đính kèm)! Rất mong được giúp đỡ
 

File đính kèm

  • Thong Ke Bao Cao.xls
    34 KB · Đọc: 13
Bạn dùng thử cái code cùi mình viết xem
 

File đính kèm

  • Thong Ke Bao Cao.xls
    51.5 KB · Đọc: 21
Mong các bác giúp đỡ viết hàm thống kê các báo cáo đến hạn theo điều kiện (Em đã ghi chi tiết trong file đính kèm)! Rất mong được giúp đỡ
Hàm đây bạn.
Mã:
Function laydulieu(ByVal dk As String, ParamArray mang())
         Dim arr, i As Long, kq(1 To 1000, 1 To 3) As String, data, a As Long
         For Each data In mang
             arr = data.Value
             For i = 1 To UBound(arr)
                If dk = arr(i, 3) Then
                   a = a + 1
                   kq(a, 1) = a
                   kq(a, 2) = arr(i, 2)
                   kq(a, 3) = arr(i, 3)
                End If
            Next i
        Next
        laydulieu = kq
End Function
Mã:
=laydulieu(C6,DATA1!$A$5:$C$10,DATA2!A5:C12,DATA3!A5:C13)
 

File đính kèm

  • Thong Ke Bao Cao.xls
    47.5 KB · Đọc: 11
Em cám ơn bác Hieu042, snow25 nhiều ạ! Ví dụ như giờ em muốn lọc trong 1 khoảng thời gian ví dụ như từ ngày 20/2/2019 đến ngày 25/2/2019 thì có được không ạ
 
Mong các bác giúp đỡ viết hàm thống kê các báo cáo đến hạn theo điều kiện (Em đã ghi chi tiết trong file đính kèm)! Rất mong được giúp đỡ
1 cách:
PHP:
Sub Test()
    Application.ScreenUpdating = False
    Dim Sh As Worksheet, a(), KQ(), dk As Date, i, k
    ReDim KQ(1 To 6500, 1 To 3)
    dk = Sheets("TK").Range("C6").Value
    For Each Sh In ThisWorkbook.Worksheets
        If Sh.Name <> "TK" Then
            If Sh.Range("A6500").End(xlUp).Row > 4 Then
                a = Sh.Range("A5", Sh.Range("A6500").End(xlUp)).Resize(, 3).Value
                For i = 1 To UBound(a)
                    If a(i, 3) = dk Then
                        k = k + 1
                        KQ(k, 1) = k: KQ(k, 2) = a(i, 2): KQ(k, 3) = a(i, 3)
                    End If
                Next
            End If
        End If
    Next
    With Sheets("TK")
        .Range("A7").Resize(6500, 3).ClearContents
        .Range("A7").Resize(6500, 3).Borders.LineStyle = 0
        If k Then
            .Range("A7").Resize(k, 3) = KQ
            .Range("A7").Resize(k, 3).Borders.LineStyle = 1
        End If
    End With
End Sub
 
Lần chỉnh sửa cuối:

File đính kèm

  • Thong Ke Bao Cao_1.xls
    55.5 KB · Đọc: 23
Lời đầu tiên em xin gửi lời cám ơn chân thành đến bác: vanaccex, phulien1902, @Hieu042, @snow25 rất nhiều vì đã giúp đỡ em trong bài tập trên, tuy nhiên trong quá trình triển khai cho công việc em lại gặp khó khăn về trường dữ liệu ngày/tháng không giống nhau. Ví vụ như file em đính kèm tại các sheet có trường ngày tháng giống nhau thì không sao, nhưng có một số sheet các kỳ báo cáo hàng tháng lại chỉ ghi báo cáo vào ngày 10 tháng báo cáo hoặc ngày 10 tháng cuối quý báo cáo lại không được, mong các bác tư vấn và giúp đỡ làm như thế nào để khi nhập điều kiện thì nó hiện trên bảng TK. Một lần nữa em xin chân thành cám ơn các bác
 

File đính kèm

  • KE HOACH GIAO HUYEN 2019.xlsx
    773 KB · Đọc: 20
Lời đầu tiên em xin gửi lời cám ơn chân thành đến bác: vanaccex, phulien1902, @Hieu042, @snow25 rất nhiều vì đã giúp đỡ em trong bài tập trên, tuy nhiên trong quá trình triển khai cho công việc em lại gặp khó khăn về trường dữ liệu ngày/tháng không giống nhau. Ví vụ như file em đính kèm tại các sheet có trường ngày tháng giống nhau thì không sao, nhưng có một số sheet các kỳ báo cáo hàng tháng lại chỉ ghi báo cáo vào ngày 10 tháng báo cáo hoặc ngày 10 tháng cuối quý báo cáo lại không được, mong các bác tư vấn và giúp đỡ làm như thế nào để khi nhập điều kiện thì nó hiện trên bảng TK. Một lần nữa em xin chân thành cám ơn các bác
Điều quan trọng là số liệu đầu vào phải chuẩn, nếu không thì khó cho việc xử lý dữ liệu lắm.
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom