Tính số lần xuất hiện của trá trị (1 người xem)

Liên hệ QC

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

hungdiep85

Thành viên thường trực
Tham gia
1/6/09
Bài viết
218
Được thích
23
Giới tính
Nam
Chào các Thầy/Cô và Anh/Chị


Mong các Thầy/Cô và Anh/Chị giúp em đoạn code với.

Sheet1 D3:V3 tính số lần xuất hiện của giá trị qua sheet 2 ạ
(Ví dụ như là em muốn tính vùng nào thì em chọn vùng đó rồi chạy code ạ)

Em cảm ơn trước ạ
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Công thức có được không bạn :


Dạ hàm hay code cũng được Anh , nhưng A2 đến A20 đó là em ví dụ thôi à, nó là tên người và nằm ở nhiều chổ khác nhau hết và dữ liệu đến 1 tháng lận nhiếu lắm, nên em muốn là vừa lấy được tên người ra và vừa tính được số lần xuất hiện ạ.

Ví dụ như là em muốn tính vùng nào thì em chọn vùng đó rồi chạy code ạ
 
Upvote 0
Dạ hàm hay code cũng được Anh , nhưng A2 đến A20 đó là em ví dụ thôi à, nó là tên người và nằm ở nhiều chổ khác nhau hết và dữ liệu đến 1 tháng lận nhiếu lắm, nên em muốn là vừa lấy được tên người ra và vừa tính được số lần xuất hiện ạ.

Ví dụ như là em muốn tính vùng nào thì em chọn vùng đó rồi chạy code ạ

Bạn thử code này xem thế nào rồi tính tiếp:
Mã:
Sub test()
Dim Cel As Range
Dim Dic As Object
Dim strTam As String
Dim k As Long
Dim arrKetQua()
ReDim arrKetQua(1 To Selection.Rows.Count * Selection.Columns.Count, 1 To 2)
Set Dic = CreateObject("Scripting.Dictionary")
For Each Cel In Selection
    If Len(Cel.Value) Then
        strTam = CStr(Cel.Value)
        If Not Dic.exists(strTam) Then
            k = k + 1
            Dic.Add strTam, Array(k, 1)
            arrKetQua(k, 1) = strTam
            arrKetQua(k, 2) = Dic.Item(strTam)(1)
        Else
            Dic.Item(strTam) = Array(Dic.Item(strTam)(0), Dic.Item(strTam)(1) + 1)
            arrKetQua(Dic.Item(strTam)(0), 2) = Dic.Item(strTam)(1)
        End If
    End If
Next Cel
If k Then Sheet2.Range("B2").Resize(k, 2).Value = arrKetQua
End Sub

Select vùng cần đếm rồi chạy code.
 
Upvote 0
Bạn thử code này xem thế nào rồi tính tiếp:
Mã:
Sub test()
Dim Cel As Range
Dim Dic As Object
Dim strTam As String
Dim k As Long
Dim arrKetQua()
ReDim arrKetQua(1 To Selection.Rows.Count * Selection.Columns.Count, 1 To 2)
Set Dic = CreateObject("Scripting.Dictionary")
For Each Cel In Selection
    If Len(Cel.Value) Then
        strTam = CStr(Cel.Value)
        If Not Dic.exists(strTam) Then
            k = k + 1
            Dic.Add strTam, Array(k, 1)
            arrKetQua(k, 1) = strTam
            arrKetQua(k, 2) = Dic.Item(strTam)(1)
        Else
            Dic.Item(strTam) = Array(Dic.Item(strTam)(0), Dic.Item(strTam)(1) + 1)
            arrKetQua(Dic.Item(strTam)(0), 2) = Dic.Item(strTam)(1)
        End If
    End If
Next Cel
If k Then Sheet2.Range("B2").Resize(k, 2).Value = arrKetQua
End Sub

Select vùng cần đếm rồi chạy code.



Dạ.Em cảm ơn Anh nhiều lắm. tuyệt vời Anh ạ.
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom