Code cho hàm Vlookup nhiều lần.

Liên hệ QC

Yeuvoyeucon

Thành viên hoạt động
Tham gia
30/10/09
Bài viết
143
Được thích
23
Kính gửi các anh chị và các bạn,
Mọi người hỗ trợ em code VBA của hàm Vlookup mà có 4 lần như ví dụ với ạ. Em cảm ơn ạ.
 

File đính kèm

  • Ham VLookup nhieu lan.xlsm
    18.6 KB · Đọc: 17
Kính gửi các anh chị và các bạn,
Mọi người hỗ trợ em code VBA của hàm Vlookup mà có 4 lần như ví dụ với ạ. Em cảm ơn ạ.
Dữ liệu lớn không mà dùng VBA bạn.
Tôi nhìn file thì đoán là bạn chưa biết cố định cột, rồi cách chuyển tự động cột kết quả trong bảng tham chiếu.
Bạn thử công thức:
PHP:
G2=VLOOKUP($C2,Thongtin!$C$4:$G$10,COLUMN(B2),0)
Enter, Fill xuống, Fill sang phải.
 
Upvote 0
Dữ liệu lớn không mà dùng VBA bạn.
Tôi nhìn file thì đoán là bạn chưa biết cố định cột, rồi cách chuyển tự động cột kết quả trong bảng tham chiếu.
Bạn thử công thức:
PHP:
G2=VLOOKUP($C2,Thongtin!$C$4:$G$10,COLUMN(B2),0)
Enter, Fill xuống, Fill sang phải.
Nếu kiểu này thì thấy dữ liệu là có 4 lần chứ? chán các thanh niên ra đề thật
 
Upvote 0
Dữ liệu lớn không mà dùng VBA bạn.
...
Dữ liệu lớn cũng không hẳn cần dùng VBA.
Kiểu lấy nhiều cột như vầy, người ta đặt name cho cả vùng, thêm một cột phụ với hàm Match để lấy vị trí dòng. Sau đó cứ Index ra từng ô.
 
Upvote 0
Dữ liệu lớn cũng không hẳn cần dùng VBA.
Kiểu lấy nhiều cột như vầy, người ta đặt name cho cả vùng, thêm một cột phụ với hàm Match để lấy vị trí dòng. Sau đó cứ Index ra từng ô.
Khi em làm code, cần phải ghép dữ liệu nhiều bảng với nhau. Em phải chặt nhỏ ra để làm vì trình độ code của em còn kém. Nên em cần dùng VBA cho liên hoàn anh ạ.
Bài đã được tự động gộp:

Dữ liệu lớn không mà dùng VBA bạn.
Tôi nhìn file thì đoán là bạn chưa biết cố định cột, rồi cách chuyển tự động cột kết quả trong bảng tham chiếu.
Bạn thử công thức:
PHP:
G2=VLOOKUP($C2,Thongtin!$C$4:$G$10,COLUMN(B2),0)
Enter, Fill xuống, Fill sang phải.
Cần anh ạ !
 
Upvote 0
Kính gửi các anh chị và các bạn,
Mọi người hỗ trợ em code VBA của hàm Vlookup mà có 4 lần như ví dụ với ạ. Em cảm ơn ạ.
Góp vui chống dịch. nếu muốn dùng hàm Vlookup=VBA thì hãy thử xem
Nhập vào ô nào đó trong sh KQ cú pháp ví dụ
G2= Vlookup_VBA(C2;column(A1)) enter và filldown.
nếu fill sang ngang Thì cố định $C$2
nếu bạn thay đổi dữ liệu của sh Thongtin thì Sh cũng đã được cập nhật
 

File đính kèm

  • Ham VLookup nhieu lan.xlsm
    23.5 KB · Đọc: 16
Lần chỉnh sửa cuối:
Upvote 0
Khi em làm code, cần phải ghép dữ liệu nhiều bảng với nhau. Em phải chặt nhỏ ra để làm vì trình độ code của em còn kém. Nên em cần dùng VBA cho liên hoàn anh ạ.
Bài đã được tự động gộp:


Cần anh ạ !
Nếu bạn không ngại thì nên đưa 1 bài toán tổng thể nên để mọi người cùng tìm hiểu và tư vấn.
 
Upvote 0
Kính gửi các anh chị và các bạn,
Mọi người hỗ trợ em code VBA của hàm Vlookup mà có 4 lần như ví dụ với ạ. Em cảm ơn ạ.
Bạn thử code.
Mã:
Sub laydulieu()
   Dim i As Long, lr As Long, arr, dic As Object, kq, dk As String, data, j As Integer, b As Long
   Set dic = CreateObject("scripting.dictionary")
   With Sheets("thongtin")
       lr = .Range("C" & Rows.Count).End(xlUp).Row
       arr = .Range("C4:G" & lr).Value
       For i = UBound(arr) To 1 Step -1
           dk = arr(i, 1)
           dic.Item(dk) = i
       Next i
  End With
  With Sheets("Kq")
       lr = .Range("C" & Rows.Count).End(xlUp).Row
       data = .Range("C2:D" & lr).Value
       ReDim kq(1 To UBound(data), 1 To 4)
       For i = 1 To UBound(data)
           dk = data(i, 1)
           b = dic.Item(dk)
           If b Then
              For j = 1 To 4
                  kq(i, j) = arr(b, j + 1)
              Next j
           End If
       Next i
       .Range("G2:J" & lr).Value = kq
 End With
 Set dic = Nothing
End Sub
 
Upvote 0
Góp vui chống dịch.
Nhập vào ô nào đó trong sh
Là sao anh !
Bạn thử code.
Mã:
Sub laydulieu()
   Dim i As Long, lr As Long, arr, dic As Object, kq, dk As String, data, j As Integer, b As Long
   Set dic = CreateObject("scripting.dictionary")
   With Sheets("thongtin")
       lr = .Range("C" & Rows.Count).End(xlUp).Row
       arr = .Range("C4:G" & lr).Value
       For i = UBound(arr) To 1 Step -1
           dk = arr(i, 1)
           dic.Item(dk) = i
       Next i
  End With
  With Sheets("Kq")
       lr = .Range("C" & Rows.Count).End(xlUp).Row
       data = .Range("C2:D" & lr).Value
       ReDim kq(1 To UBound(data), 1 To 4)
       For i = 1 To UBound(data)
           dk = data(i, 1)
           b = dic.Item(dk)
           If b Then
              For j = 1 To 4
                  kq(i, j) = arr(b, j + 1)
              Next j
           End If
       Next i
       .Range("G2:J" & lr).Value = kq
 End With
 Set dic = Nothing
End Sub
Cảm ơn Anh đã trợ giúp code hay ạ !
 
Upvote 0
Xem thêm 1 tham khảo: Hàm mảng người dùng:
 

File đính kèm

  • UDF.rar
    15.2 KB · Đọc: 11
Upvote 0
Web KT
Back
Top Bottom