Ghép dữ liệu từ 2 bảng sang bảng thứ 3 (1 người xem)

Liên hệ QC

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

dthinhng

Thành viên mới
Tham gia
24/9/19
Bài viết
1
Được thích
0
Hi cả nhà,

Em có 1 bài tập, cần ghép dữ liêu từ 2 bảng sang bảng thứ 3 (chi tiết file đính kèm). Cụ thể, bảng 1 gồm tên user và nhóm phân quyền; bảng 2 gồm nhóm phân quyền và các quyền con => Em cần ghép tên user từ bảng 1 và từng quyền con từ bảng 2 sang bảng thứ 3 nhưng không biết cách làm tự động (hàm excel/ vba) để tránh bị lỗi

Nhờ anh/ chị hỗ trợ giúp em với ah!
 

File đính kèm

Hi cả nhà,

Em có 1 bài tập, cần ghép dữ liêu từ 2 bảng sang bảng thứ 3 (chi tiết file đính kèm). Cụ thể, bảng 1 gồm tên user và nhóm phân quyền; bảng 2 gồm nhóm phân quyền và các quyền con => Em cần ghép tên user từ bảng 1 và từng quyền con từ bảng 2 sang bảng thứ 3 nhưng không biết cách làm tự động (hàm excel/ vba) để tránh bị lỗi

Nhờ anh/ chị hỗ trợ giúp em với ah!
Dùng Pivottable 2 bảng được đó bạn => Xin lỗi bạn là chưa ổn, mong có người khác giúp bạn
 
Lần chỉnh sửa cuối:
Hi cả nhà,

Em có 1 bài tập, cần ghép dữ liêu từ 2 bảng sang bảng thứ 3 (chi tiết file đính kèm). Cụ thể, bảng 1 gồm tên user và nhóm phân quyền; bảng 2 gồm nhóm phân quyền và các quyền con => Em cần ghép tên user từ bảng 1 và từng quyền con từ bảng 2 sang bảng thứ 3 nhưng không biết cách làm tự động (hàm excel/ vba) để tránh bị lỗi

Nhờ anh/ chị hỗ trợ giúp em với ah!
Dúng 1 cột phụ
 

File đính kèm

Thử với VBA xem sao:
PHP:
Option Explicit

Public Sub s_Gpe()
Dim sArr(), dArr(), tArr(), Tmp As Variant, Txt As String
Dim I As Long, J As Long, K As Long, R1 As Long, R2 As Long
With CreateObject("Scripting.Dictionary")
    '================================================ Bang 2'
    sArr = Range("D3", Range("D3").End(xlDown)).Resize(, 2).Value
    R1 = UBound(sArr)
    For I = 1 To R1
        Txt = sArr(I, 1)
        If Not .Exists(Txt) Then
            .Item(Txt) = sArr(I, 2)
        Else
            .Item(Txt) = .Item(Txt) & ";" & sArr(I, 2)
        End If
    Next I
    '================================================ Bang 1'
    tArr = Range("A3", Range("A3").End(xlDown)).Resize(, 2).Value
    R2 = UBound(tArr)
    ReDim dArr(1 To R1 * R2, 1 To 2)
    For I = 1 To R2
        Txt = tArr(I, 2)
        If .Exists(Txt) Then
            Tmp = Split(.Item(Txt), ";")
            For J = LBound(Tmp) To UBound(Tmp)
                K = K + 1
                dArr(K, 1) = tArr(I, 1)
                dArr(K, 2) = Tmp(J)
            Next J
        End If
    Next I
End With
'================================================'
Range("G3").Resize(K, 2) = dArr
End Sub
 
Web KT

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

Back
Top Bottom