Thống kê, tổng hợp xếp loại của 12 tháng (3 người xem)

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

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

huynhhao

Thành viên mới
Tham gia
20/11/18
Bài viết
4
Được thích
0
File này bao gồm 12 sheet tương đương 12 tháng trong năm. trong mỗi sheet là danh sách đánh giá xếp loại a hoặc b hoặc 0. nhiệm vụ bây giờ là tổng hợp xem 12 tháng đó mỗi người sẽ có bao nhiêu loại a và bao nhiêu loại b
e xin cảm ơn ạ!!!
Bài đã được tự động gộp:

mong ad duyệt giúp
 

File đính kèm

File này bao gồm 12 sheet tương đương 12 tháng trong năm. trong mỗi sheet là danh sách đánh giá xếp loại a hoặc b hoặc 0. nhiệm vụ bây giờ là tổng hợp xem 12 tháng đó mỗi người sẽ có bao nhiêu loại a và bao nhiêu loại b
e xin cảm ơn ạ!!!
Tiêu đề chẳng ăn nhập gì với nội dung cần hỏi. Nếu không sửa có thể sẽ tiếp tục bị dời vào hậu viên.
https://giaiphapexcel.com/diendan/threads/cần-gấp-giúp-mình-với.140161/post-900509
Sao không viết rõ là "Thống kê, tổng hợp xếp loại của 12 tháng".
 
File này bao gồm 12 sheet tương đương 12 tháng trong năm. trong mỗi sheet là danh sách đánh giá xếp loại a hoặc b hoặc 0. nhiệm vụ bây giờ là tổng hợp xem 12 tháng đó mỗi người sẽ có bao nhiêu loại a và bao nhiêu loại b
e xin cảm ơn ạ!!!
Bài đã được tự động gộp:

mong ad duyệt giúp
Bạn xem code.
Mã:
Sub tonghop()
Dim a As Long, lr As Long, i As Long, b As Long
Dim arr, arr1(1 To 1000, 1 To 4), dic As Object
Dim sh As Worksheet
Set dic = CreateObject("scripting.dictionary")
For Each sh In ThisWorkbook.Worksheets
  If sh.Name <> "Tong hop" Then
     lr = sh.Range("A" & Rows.Count).End(xlUp).Row
     If lr > 4 Then
        arr = sh.Range("A5:C" & lr).Value
        For i = 1 To UBound(arr, 1)
            If Not dic.exists(arr(i, 1)) Then
               a = a + 1
               arr1(a, 1) = arr(i, 1)
               arr1(a, 2) = arr(i, 2)
               If arr(i, 3) = "A" Then
                  arr1(a, 3) = 1
               ElseIf arr(i, 3) = "B" Then
                  arr1(a, 4) = 1
               End If
               dic.Add arr(i, 1), a
           Else
              b = dic.Item(arr(i, 1))
              If arr(i, 3) = "A" Then
                  arr1(b, 3) = 1 + arr1(b, 3)
               ElseIf arr(i, 3) = "B" Then
                  arr1(b, 4) = 1 + arr1(b, 4)
               End If
           End If
        Next i
     End If
 End If
Next
With Sheets("tong hop")
    lr = .Range("A" & Rows.Count).End(xlUp).Row
    If lr > 1 Then .Range("A2:D" & lr).ClearContents
    If a Then .Range("A2").Resize(a, 4).Value = arr1
End With
End Sub
 

File đính kèm

Bạn xem code.
Mã:
Sub tonghop()
Dim a As Long, lr As Long, i As Long, b As Long
Dim arr, arr1(1 To 1000, 1 To 4), dic As Object
Dim sh As Worksheet
Set dic = CreateObject("scripting.dictionary")
For Each sh In ThisWorkbook.Worksheets
  If sh.Name <> "Tong hop" Then
     lr = sh.Range("A" & Rows.Count).End(xlUp).Row
     If lr > 4 Then
        arr = sh.Range("A5:C" & lr).Value
        For i = 1 To UBound(arr, 1)
            If Not dic.exists(arr(i, 1)) Then
               a = a + 1
               arr1(a, 1) = arr(i, 1)
               arr1(a, 2) = arr(i, 2)
               If arr(i, 3) = "A" Then
                  arr1(a, 3) = 1
               ElseIf arr(i, 3) = "B" Then
                  arr1(a, 4) = 1
               End If
               dic.Add arr(i, 1), a
           Else
              b = dic.Item(arr(i, 1))
              If arr(i, 3) = "A" Then
                  arr1(b, 3) = 1 + arr1(b, 3)
               ElseIf arr(i, 3) = "B" Then
                  arr1(b, 4) = 1 + arr1(b, 4)
               End If
           End If
        Next i
     End If
End If
Next
With Sheets("tong hop")
    lr = .Range("A" & Rows.Count).End(xlUp).Row
    If lr > 1 Then .Range("A2:D" & lr).ClearContents
    If a Then .Range("A2").Resize(a, 4).Value = arr1
End With
End Sub
có cách nào đơn giản hơn không bạn
 
Web KT

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

Back
Top Bottom