Tổng hợp tên từ nhiều sheet

Liên hệ QC

thepdaoson

Thành viên thường trực
Tham gia
29/4/11
Bài viết
230
Được thích
114
Tôi có danh sách tên của những người ở các tháng khác nhau. Bây giờ muốn tổng hợp thành một danh sách gồm tên của tất cả mọi người đã có trong các tháng mà không lặp lại. Kính nhờ anh / chị làm giúp một công thức cho việc này với? Tôi gửi kèm theo đây một cái file đã có tên để anh/chị làm vào đó. Xin cảm ơn anh / chị.
 

File đính kèm

Tôi có danh sách tên của những người ở các tháng khác nhau. Bây giờ muốn tổng hợp thành một danh sách gồm tên của tất cả mọi người đã có trong các tháng mà không lặp lại. Kính nhờ anh / chị làm giúp một công thức cho việc này với? Tôi gửi kèm theo đây một cái file đã có tên để anh/chị làm vào đó. Xin cảm ơn anh / chị.
Thử code này:
PHP:
Public Sub DanhSach()
Dim ws As Worksheet, arrDanhSach As Variant, arrData As Variant, dic As Object
Dim lastRow As Long, i As Long, k As Long
Set dic = CreateObject("Scripting.Dictionary")
ReDim arrDanhSach(1 To 500000, 1 To 2)
For Each ws In Worksheets
    If ws.Name <> "Total" Then
        With ws
            lastRow = .Range("B" & .Rows.Count).End(xlUp).Row
            If lastRow > 1 Then
                arrData = .Range("B2:B" & lastRow).Value
                For i = 1 To UBound(arrData)
                    If dic.exists(arrData(i, 1)) = False Then
                        dic.Item(arrData(i, 1)) = k
                         k = k + 1
                         arrDanhSach(k, 1) = k
                         arrDanhSach(k, 2) = arrData(i, 1)
                    End If
                Next i
            End If
        End With
    End If
Next ws
With Sheets("Total")
    .Range("A1").CurrentRegion.Offset(1).Clear
    .Range("A2").Resize(k, 2).Value = arrDanhSach
End With
End Sub
 
Chủ thớt yêu cầu công thức và bài cũng đăng ở box công thức. Không biết có công thức nào đáp ứng không nhỉ?
 
Thử code này:
PHP:
Public Sub DanhSach()
Dim ws As Worksheet, arrDanhSach As Variant, arrData As Variant, dic As Object
Dim lastRow As Long, i As Long, k As Long
Set dic = CreateObject("Scripting.Dictionary")
ReDim arrDanhSach(1 To 500000, 1 To 2)
For Each ws In Worksheets
    If ws.Name <> "Total" Then
        With ws
            lastRow = .Range("B" & .Rows.Count).End(xlUp).Row
            If lastRow > 1 Then
                arrData = .Range("B2:B" & lastRow).Value
                For i = 1 To UBound(arrData)
                    If dic.exists(arrData(i, 1)) = False Then
                        dic.Item(arrData(i, 1)) = k
                         k = k + 1
                         arrDanhSach(k, 1) = k
                         arrDanhSach(k, 2) = arrData(i, 1)
                    End If
                Next i
            End If
        End With
    End If
Next ws
With Sheets("Total")
    .Range("A1").CurrentRegion.Offset(1).Clear
    .Range("A2").Resize(k, 2).Value = arrDanhSach
End With
End Sub
Cảm ơn bạn nhiều.
 
Web KT

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

Back
Top Bottom