So sánh 2 vùng dữ liệu & Copy nếu thỏa mãn điều kiện cho trước

Liên hệ QC

Cuongnv0920

Thành viên chính thức
Tham gia
24/3/18
Bài viết
62
Được thích
8
Giới tính
Nam
Xin chào GPE mình có 1 bài so sánh như sau:
mình có 2 bảng. bàng 1 ở sheet1, bảng 2 ở sheet2
ở bảng 2 sẽ tìm kiếm vùng dữ liệu ở bảng 1 và copy nếu thỏa mãn điều kiện VD: Cell "B2" sẽ điều chữ "a"
Các bạn xem file đính kèm sẽ dễ hiểu hơn
Cám ơn các bạn rất nhiều
 

File đính kèm

Xin chào GPE mình có 1 bài so sánh như sau:
mình có 2 bảng. bàng 1 ở sheet1, bảng 2 ở sheet2
ở bảng 2 sẽ tìm kiếm vùng dữ liệu ở bảng 1 và copy nếu thỏa mãn điều kiện VD: Cell "B2" sẽ điều chữ "a"
Các bạn xem file đính kèm sẽ dễ hiểu hơn
Cám ơn các bạn rất nhiều
Nếu dữ liệu có bấy nhiêu đó thì Copy > Paste Special > Transpose chứ cần gì code.
 
Upvote 0
Xin chào GPE mình có 1 bài so sánh như sau:
mình có 2 bảng. bàng 1 ở sheet1, bảng 2 ở sheet2
ở bảng 2 sẽ tìm kiếm vùng dữ liệu ở bảng 1 và copy nếu thỏa mãn điều kiện VD: Cell "B2" sẽ điều chữ "a"
Các bạn xem file đính kèm sẽ dễ hiểu hơn
Cám ơn các bạn rất nhiều
bạn kết hợp vlookup với hàm mack là được mà viết code chi cho mệt code thì mai sáng mình code cho
 
Upvote 0
Xin chào GPE mình có 1 bài so sánh như sau:
mình có 2 bảng. bàng 1 ở sheet1, bảng 2 ở sheet2
ở bảng 2 sẽ tìm kiếm vùng dữ liệu ở bảng 1 và copy nếu thỏa mãn điều kiện VD: Cell "B2" sẽ điều chữ "a"
Các bạn xem file đính kèm sẽ dễ hiểu hơn
Cám ơn các bạn rất nhiều
Bạn chạy thử code này xem sao
Mã:
Sub Sosanh()
Dim SArr As Variant
Dim DArr As Variant
Dim MDic As Object
Dim i As Integer, j As Integer
Set MDic = CreateObject("Scripting.Dictionary")
SArr = Sheet1.Range("a1").CurrentRegion
DArr = Sheet2.Range("a1").CurrentRegion
For i = 2 To UBound(SArr)
    For j = 2 To UBound(SArr, 2)
        If SArr(i, j) <> "" Then
            MDic(SArr(1, j) & " " & SArr(i, 1)) = SArr(i, j)
        End If
    Next j
Next i
For i = 2 To UBound(DArr)
    For j = 2 To UBound(DArr, 2)
        If MDic.exists(DArr(i, 1) & " " & DArr(1, j)) Then
            DArr(i, j) = MDic(DArr(i, 1) & " " & DArr(1, j))
        Else
            DArr(i, j) = ""
        End If
    Next j
Next i
With Sheet2
.Range("a6").Resize(UBound(DArr), UBound(DArr, 2)).ClearContents
.Range("a6").Resize(UBound(DArr), UBound(DArr, 2)) = DArr
End With
Set MDic = Nothing
End Sub
 
Upvote 0
Nếu dữ liệu có bấy nhiêu đó thì Copy > Paste Special > Transpose chứ cần gì code.
đây là mình VD thôi, thực tế thì dữ liệu của mình nhiều và phức tạp hơn
VD: bảng 2 form cố đinh chỉ có số 2, 6, 7 chứ ko có các số từ 1->10
nhưng sẽ tìm nếu có dữ liệu thì điền cào cell tương ứng trên bảng 2
mong bạn giúp ak
Bài đã được tự động gộp:

Bạn chạy thử code này xem sao
Mã:
Sub Sosanh()
Dim SArr As Variant
Dim DArr As Variant
Dim MDic As Object
Dim i As Integer, j As Integer
Set MDic = CreateObject("Scripting.Dictionary")
SArr = Sheet1.Range("a1").CurrentRegion
DArr = Sheet2.Range("a1").CurrentRegion
For i = 2 To UBound(SArr)
    For j = 2 To UBound(SArr, 2)
        If SArr(i, j) <> "" Then
            MDic(SArr(1, j) & " " & SArr(i, 1)) = SArr(i, j)
        End If
    Next j
Next i
For i = 2 To UBound(DArr)
    For j = 2 To UBound(DArr, 2)
        If MDic.exists(DArr(i, 1) & " " & DArr(1, j)) Then
            DArr(i, j) = MDic(DArr(i, 1) & " " & DArr(1, j))
        Else
            DArr(i, j) = ""
        End If
    Next j
Next i
With Sheet2
.Range("a6").Resize(UBound(DArr), UBound(DArr, 2)).ClearContents
.Range("a6").Resize(UBound(DArr), UBound(DArr, 2)) = DArr
End With
Set MDic = Nothing
End Sub
mình hơi thiếu sót chút
nếu ở bảng 2 mặc định là chỉ có STT: 2, 4, 7 thì chỉ cần tìm ở bảng 1 các STT này thôi thì làm sao ạ
 
Lần chỉnh sửa cuối:
Upvote 0
đây là mình VD thôi, thực tế thì dữ liệu của mình nhiều và phức tạp hơn
VD: bảng 2 form cố đinh chỉ có số 2, 6, 7 chứ ko có các số từ 1->10
nhưng sẽ tìm nếu có dữ liệu thì điền cào cell tương ứng trên bảng 2
mong bạn giúp ak
Thì đưa dữ liệu bao nhiêu thì tính bấy nhiêu.
Còn muốn cho tốt thì lường trước các trường hợp sảy ra và đưa ví dụ cụ thể, chứ ai biết thằng ăn trộm nó nằm trong bồ lúa đâu mà khai.
 
Upvote 0
bạn kết hợp vlookup với hàm mack là được mà viết code chi cho mệt code thì mai sáng mình code cho
mình bổ sung thêm. nãy nghĩ chưa hết
nếu ở bảng 2 mặc định là chỉ có STT: 2, 4, 7 thì chỉ cần tìm ở bảng 1 các STT này thôi thì làm sao ạ
Bài đã được tự động gộp:

Thì đưa dữ liệu bao nhiêu thì tính bấy nhiêu.
Còn muốn cho tốt thì lường trước các trường hợp sảy ra và đưa ví dụ cụ thể, chứ ai biết thằng ăn trộm nó nằm trong bồ lúa đâu mà khai.
hè hè, thiếu sót chút
 
Upvote 0

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom