Mọi người giúp em hàm Vlookup với

Liên hệ QC

trungqucb

Thành viên mới
Tham gia
19/5/15
Bài viết
17
Được thích
3
Em muốn lấy tên chủ rừng từ cột C vào cột G điều kiện là cột E và F trùng với cột A và B
Mọi người giúp em với em mới dùng Excel ạ :(
1542688397645.png
 

File đính kèm

  • Trung Khanh DBR 2017.xlsx
    4.7 MB · Đọc: 3
Bạn nghiên cứu Dùng index kết hợp với match cho dễ hiểu.
 
Em muốn lấy tên chủ rừng từ cột C vào cột G điều kiện là cột E và F trùng với cột A và B
Mọi người giúp em với em mới dùng Excel ạ :(
View attachment 207993
Mã:
Sub vlookup()
   Dim i As Long, j As Long
   Dim arr, arr1, arr2
   Dim dic As Object
   Dim dk As String
   Set dic = CreateObject("scripting.dictionary")
   With Sheet3
       arr = .Range("a2:c" & .Range("a" & Rows.Count).End(xlUp).Row).Value
       arr1 = .Range("e2:g" & .Range("e" & Rows.Count).End(xlUp).Row).Value
       For i = 1 To UBound(arr, 1)
       dk = arr(i, 1) & "#" & arr(i, 2)
           If dic.exists(dk) = 0 Then
               dic.Item(dk) = Array(arr(i, 3))
           End If
       Next i
       For i = 1 To UBound(arr1, 1)
           dk = arr1(i, 1) & "#" & arr1(i, 2)
           If dic.exists(dk) Then
              arr1(i, 3) = dic.Item(dk)(0)
           Else
              arr(i, 3) = "khong tim thay"
           End If
       Next i
   .Range("e2").Resize(UBound(arr1, 1), 3).Value = arr1
   End With
End Sub
bạn lắp code này vào chạy xem thế nào nhé
 
Mã:
Sub vlookup()
   Dim i As Long, j As Long
   Dim arr, arr1, arr2
   Dim dic As Object
   Dim dk As String
   Set dic = CreateObject("scripting.dictionary")
   With Sheet3
       arr = .Range("a2:c" & .Range("a" & Rows.Count).End(xlUp).Row).Value
       arr1 = .Range("e2:g" & .Range("e" & Rows.Count).End(xlUp).Row).Value
       For i = 1 To UBound(arr, 1)
       dk = arr(i, 1) & "#" & arr(i, 2)
           If dic.exists(dk) = 0 Then
               dic.Item(dk) = Array(arr(i, 3))
           End If
       Next i
       For i = 1 To UBound(arr1, 1)
           dk = arr1(i, 1) & "#" & arr1(i, 2)
           If dic.exists(dk) Then
              arr1(i, 3) = dic.Item(dk)(0)
           Else
              arr(i, 3) = "khong tim thay"
           End If
       Next i
   .Range("e2").Resize(UBound(arr1, 1), 3).Value = arr1
   End With
End Sub
bạn lắp code này vào chạy xem thế nào nhé
Em mới tập đọc code cho em hỏi cái này tí ạ, hihi, tại sao khi khai báo có khai báo mảng Arr2 nhưng bên dưới em lại không thấy dùng tới ạ?Em cám ơn.
 
Em mới tập đọc code cho em hỏi cái này tí ạ, hihi, tại sao khi khai báo có khai báo mảng Arr2 nhưng bên dưới em lại không thấy dùng tới ạ?Em cám ơn.
à khai báo định dùng nhưng khi làm nghĩ lại ko cần nên thôi :D,không muốn xóa bạn à
 
em làm được rồi cảm ơn các bác nhiều lắm ạ
 
Web KT
Back
Top Bottom