Chức năng tra cứu VBA - Làm thế nào để sử dụng Chức năng Tra cứu? (Ví dụ)

Hàm VBA LOOKUP trong Excel

Lookup là chức năng giúp chúng ta tìm nạp dữ liệu từ bảng chính dựa trên một giá trị tra cứu duy nhất. Hàm VBA LOOKUP không yêu cầu cấu trúc dữ liệu như vậy, đối với hàm LOOKUP, không quan trọng cột kết quả ở bên phải hay bên trái của giá trị tra cứu, vẫn có thể tìm nạp dữ liệu một cách thoải mái.

Hàm này hoạt động tương tự như hàm VLOOKUP, nhưng quan trọng hơn, hàm này linh hoạt trong cấu trúc dữ liệu. Khi chúng tôi nói linh hoạt trong cấu trúc dữ liệu, điều đó có nghĩa là hàm VLOOKUP cần tất cả các giá trị ở bên phải của giá trị tra cứu trong bảng chính và bất kỳ thứ gì còn lại đối với giá trị tra cứu thì VLOOKUP không thể tìm thấy nó.

Cú pháp

Nếu bạn đã tìm kiếm công thức LOOKUP trong trình soạn thảo VBA, tôi chắc chắn rằng bạn đã phát điên lên vì có một công thức được gọi là LOOKUP trong VBA.

Lý do tại sao nó không có sẵn theo mặc định vì LOOKUP không phải là một hàm VBA, nó là một hàm trang tính. Vì vậy, để sử dụng hàm LOOKUP, trước tiên chúng ta cần sử dụng hàm trang tính trong lớp VBA.

  • Arg 1 có nghĩa là giá trị tra cứu
  • Arg 2 là vectơ tra cứu của chúng tôi, tức là phạm vi của cột giá trị tra cứu của chúng tôi
  • Arg 3 là vectơ kết quả của chúng ta.

Làm thế nào để sử dụng chức năng tra cứu VBA? (Ví dụ)

Ví dụ 1

Chúng tôi có dữ liệu sau mà từ đó chúng tôi muốn lấy Giá trung bình của một tên sản phẩm cụ thể bằng cách sử dụng chức năng Tra cứu trong VBA Excel.

Để nhận Giá trung bình của Phụ kiện di động, hãy sử dụng mã sau.

Bước 1: Bắt đầu quy trình con trong VBA.

Mã:

Sub Lookup_Example1 () End Sub

Bước 2: Tôi cần kết quả trong ô F3. Vì vậy, mã của tôi là Phạm vi (“F3”). Giá trị =.

Mã:

Sub Lookup_Example1 () Phạm vi ("F3"). Giá trị End Sub

Bước 3: Như tôi đã nói, chúng tôi không thể truy cập ngay vào hàm LOOKUP. Vì vậy, trước tiên, hãy sử dụng lớp Hàm Worksheet.

Bước 4: Tại thời điểm chúng ta áp dụng lớp Worksheet Function, chúng ta có thể thấy tất cả các công thức có sẵn với lớp này trong VBA, vì vậy hãy chọn LOOKUP từ danh sách này.

Bước 5: Với các hàm trang tính trong VBA, chúng ta không thấy các đối số rõ ràng của công thức. Ở đây Arg 1 có nghĩa là giá trị tra cứu. Giá trị tra cứu của chúng tôi nằm trong ô E3, vì vậy hãy viết mã là Phạm vi (“E3”). Giá trị.

Mã:

Sub Lookup_Example1 () Range ("F3"). Value = WorksheetFunction.Lookup (Range ("E3"). Giá trị End Sub

Bước 6: Arg 2 là vectơ tra cứu của chúng ta, tức là phạm vi của cột giá trị tra cứu của chúng ta. Trong ví dụ này, phạm vi vectơ tra cứu của chúng tôi là từ B3 đến B10.

Mã:

Sub Lookup_Example1 () Range ("F3"). Value = WorksheetFunction.Lookup (Range ("E3"). Value, Range ("B3: B10"), End Sub

Bước 7: Arg 3 là vector kết quả của chúng ta. Chúng tôi cần kết quả từ cột Giá trung bình, vì vậy vectơ kết quả nằm từ Phạm vi C3 đến C10.

Mã:

Sub Lookup_Example1 () Range ("F3"). Value = WorksheetFunction.Lookup (Range ("E3"). Value, Range ("B3: B10"), Range ("C3: C10")) End Sub

Ok, chúng ta đã hoàn tất việc mã hóa VBA.

Hãy chạy mã và chúng ta sẽ nhận được kết quả trong ô F3.

Như vậy, chúng ta có thể sử dụng hàm LOOKUP trong lớp hàm trang tính để tìm nạp dữ liệu của giá trị tra cứu được cung cấp.

Ví dụ số 2

Sử dụng các biến cho hàm LOOKUP

Sử dụng các biến cũng có thể đưa ra kết quả. Dưới đây là mã ví dụ của hàm tra cứu với các biến.

Mã:

Sub Lookup_Example2 () Dim ResultCell As Range Dim LookupValueCell As Range Dim LookupVector As Range Dim ResultVector As Range Set ResultCell = Range ("F3") Set LookupValueCell = Range ("E3") Set LookupVector = Range ("B3: B10") Đặt ResultVector = Range ("C3: C10") ResultCell = WorksheetFunction.Lookup (LookupValueCell, LookupVector, ResultVector) End Sub

Mặc dù có vẻ dài dòng nhưng nó sẽ hiển thị tốt các biến trong VBA. Thay vì cung cấp trực tiếp tất cả các giá trị cho công thức, chúng tôi đã khai báo các biến và gán tập hợp các phạm vi và giá trị cho chúng.

Khai báo các biến và thiết lập tham chiếu đến các biến đó luôn là một thực tiễn tốt trong bất kỳ ngôn ngữ mã hóa nào.

Những điều cần ghi nhớ

  • LOOKUP là một hàm thay thế cho hàm VLOOKUP.
  • LOOKUP không nhất thiết phải yêu cầu cột kết quả ở bên phải giá trị tra cứu.
  • Độ dài phạm vi của cả vectơ tra cứu và vectơ kết quả phải giống nhau.
  • Quan trọng hơn, chúng ta cần cung cấp số chỉ mục cột, số này cần thiết cho hàm VLOOKUP.

thú vị bài viết...