Hàm CountIfs trong Vba Excel ?

Liên hệ QC

huynhphuong thcspt

Thành viên mới
Tham gia
31/8/18
Bài viết
45
Được thích
10
1/ Chào các bạn trên diễn đàn !
Mình dùng hàm CountIfs có kết hợp với vòng lập For để thống kê học sinh chưa đi học. ( tại các ô tô màu vàng theo file đính kèm (V19 : AD27) ). Code viết như sau:
Rich (BB code):
Sub TK()
Dim lr As Long, dol As Long
    With Sheets("DATA")
        lr = .Cells(Rows.Count, 1).End(xlUp).Row
        For dol = 19 To 27
            Cells(dol, 22).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AE5:AE" & lr), "1", .Range("AT5:AT" & lr), "") 'Chua hoc lop 1
        Next dol
        For dol = 19 To 27
            Cells(dol, 23).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AE5:AE" & lr), "2", .Range("AT5:AT" & lr), "") 'Chua hoc lop 2
        Next dol
        For dol = 19 To 27
            Cells(dol, 24).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AE5:AE" & lr), "3", .Range("AT5:AT" & lr), "") 'Chua hoc lop 3
        Next dol
        For dol = 19 To 27
            Cells(dol, 25).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AE5:AE" & lr), "4", .Range("AT5:AT" & lr), "") 'Chua hoc lop 4
        Next dol
        For dol = 19 To 27
            Cells(dol, 26).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AE5:AE" & lr), "5", .Range("AT5:AT" & lr), "") 'Chua hoc lop 5
        Next dol
        For dol = 19 To 27
            Cells(dol, 27).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AE5:AE" & lr), "6", .Range("AT5:AT" & lr), "") 'Chua hoc lop 6
        Next dol
        For dol = 19 To 27
            Cells(dol, 28).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AE5:AE" & lr), "7", .Range("AT5:AT" & lr), "") 'Chua hoc lop 7
        Next dol
        For dol = 19 To 27
            Cells(dol, 29).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AE5:AE" & lr), "8", .Range("AT5:AT" & lr), "") 'Chua hoc lop 8
        Next dol
        For dol = 19 To 27
            Cells(dol, 30).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AE5:AE" & lr), "9", .Range("AT5:AT" & lr), "") 'Chua hoc lop 9
        Next dol
    End With
End Sub
2/ Mong các bạn giúp giùm mình, bằng cách nào đó làm gọn lại đoạn code trên. Xin chân thành cảm ơn!
 

File đính kèm

  • Thong_Ke.xlsm
    3.2 MB · Đọc: 8
Cứ thấy có cái cặp này
Next dol
For dol = 19 To 27

Thì xoá đi.
Chạy thử code, nếu thấy đúng như code cũ thì nói chuyện tiếp.
Nếu không thấy kết quả ra giống code cũ thì cho biết những chỗ không giống ấy, và nói chuyện tiếp.
 
Upvote 0
Web KT

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

Back
Top Bottom