vậy bạn dùng hàm VLookup bình thường nhưng ghép điều kiện vào với nhau là được.chắc mình nghĩ tạo thêm cột phụ à.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
Bạn tham khảo hàm Lookup(2,1/....) trong bài #8 Link này nhé!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
Gởi file lên đi, dạng bài này có cả tá cách làmEm 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
Gởi file lên đi, dạng bài này có cả tá cách làm
Cái file gửi lên không có sheet 1 nơi bạn ơi,đây b ơi ở trong sheet 1 nha b
em vừa sửa lại rồi a giúp em vớiCái file gửi lên không có sheet 1 nơi bạn ơi,
Với lại dữ liệu trên 10000 dòng thế này nên nhà mấy anh viết code cho lẹ. hì
Công thức ô G2, kéo xuống nhé!em vừa sửa lại rồi a giúp em với
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
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
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.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
à khai báo định dùng nhưng khi làm nghĩ lại ko cần nên thôiEm 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.
À ra vậy, hihià khai báo định dùng nhưng khi làm nghĩ lại ko cần nên thôi,không muốn xóa bạn à