Xin giúp đỡ về thống kê các báo cáo đến kỳ (3 người xem)

Liên hệ QC

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

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

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

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

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

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

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

Back
Top Bottom