Khi làm việc trong Excel, người dùng sẽ cần tìm một giá trị cụ thể từ tập dữ liệu. Tuy nhiên, nếu phải làm việc với một tập dữ liệu “khổng lồ” thì việc tìm dữ liệu sẽ trở nên khó hơn. Chính vì vậy, hàm LOOKUP của Excel VBA luôn là lựa chọn tuyệt vời, giúp người dùng giải quyết vấn đề này. Trong bài viết dưới đây, UniTrain sẽ giúp bạn hiểu rõ hơn về cách dùng hàm LOOKUP VBA qua 3 ví dụ:
– Sử dụng ô tham chiếu để tìm dữ liệu
– Sử dụng dữ liệu nhập của người dùng làm giá trị tra cứu
– Sử dụng một dãy giá trị tra cứu
1. Sử dụng ô tham chiếu để tìm dữ liệu
Sử dụng Cell Reference làm giá trị tra cứu trong hàm LOOKUP VBA bằng cách:
Bước 1: Sắp xếp Vector tra cứu theo thứ tự tăng dần
Trước tiên, bạn cần sắp xếp Vector tra cứu theo thứ tự tăng dần. Trong ví dụ này, người dùng sẽ sử dụng tên của Product làm giá trị tra cứu. Do đó, Vector tra cứu sẽ nằm trong phạm vi C5:C14.
1. Chọn dãy ô C5:C14.
2. Chọn Home > Sort & Filter trong mục Editing > Sort A to Z.
Sau đó, cột Product sẽ được sắp xếp theo thứ tự tăng dần (như hình dưới).
Bước 2: Chèn module mới trong VBA Editor.
1. Chọn Developer > Visual Basic trong mục Code.
Sau đó, cửa sổ Microsoft Visual Basic for Applications sẽ hiển thị trên worksheet.
2. Chọn Insert > Module.
Bước 3: Nhập mã
1. Hãy nhập mã dưới đây:
Sub lookup_with_cell_reference()
Range("C17").Value = WorksheetFunction.Lookup(Range("B17").Value, _
Range("C5:C14"), Range("F5:F14"))
End Sub
2. Sau khi nhập mã, chọn biểu tượng Save.
Bước 4: Chạy mã
1. Nhấn ALT + F11 để trở lại worksheet.
2. Nhập tên sản phẩm vào ô B17.
3. Nhấn ALT + F8 để mở hộp thoại Macro.
4. Trong hộp thoại Macro, chọn lookup_with_cell_reference > Run.
Cuối cùng, giá của sản phẩm mà bạn nhập (Macbook Pro) trong ô B17 sẽ hiển thị trong ô C18 (như hình dưới).
2. Sử dụng dữ liệu nhập của người dùng làm giá trị tra cứu
Ví dụ này sẽ giới thiệu cách dùng thông tin người dùng nhập làm giá trị tra cứu để tìm Price (giá) của laptop bằng hàm LOOKUP VBA trong Excel. Lấy giá trị tra cứu từ người dùng bằng cách sử dụng InputBox của Excel VBA.
Cách thao tác:
Bước 1: Sắp xếp Vector tra cứu theo thứ tự tăng dần
Trước tiên, bạn cần sắp xếp Vector tra cứu theo thứ tự tăng dần. Trong ví dụ này, người dùng sẽ sử dụng tên của Product làm giá trị tra cứu. Do đó, Vector tra cứu sẽ nằm trong phạm vi C5:C14.
1. Chọn dãy ô C5:C14.
2. Chọn Home > Sort & Filter trong mục Editing > Sort A to Z.
Sau đó, cột Product sẽ được sắp xếp theo thứ tự tăng dần (như hình dưới).
Bước 2: Chèn module mới trong VBA Editor.
1. Chọn Developer > Visual Basic trong mục Code.
Sau đó, cửa sổ Microsoft Visual Basic for Applications sẽ hiển thị trên worksheet.
2. Chọn Insert > Module.
Bước 3: Nhập mã
1. Hãy nhập mã dưới đây:
Sub user_defined_lookup()
Product = InputBox("Enter the Name of the Product: ")
Range("B17").Value = WorksheetFunction.Lookup(Product, _
Range("C5:C14"), Range("F5:F14"))
End Sub
2. Chọn biểu tượng Save.
3. Nhấn ALT + F11 để trở lại worksheet.
4. Nhập tên sản phẩm vào ô B17.
5. Nhấn ALT + F8 để mở Macro.
6. Trong hộp thoại Macro, chọn lookup_with_cell_reference > Run.
7. Nhập tên sản phẩm mà bạn muốn tra cứu > OK (như hình dưới).
Sau đó, giá sản phẩm sẽ hiển thị trong ô B17.
3. Sử dụng một loạt các giá trị tra cứu
Ở ví dụ này, người dùng sẽ sử dụng một loạt các giá trị tra cứu thay vì một giá trị tra cứu để tìm Price (giá) của laptop bằng hàm LOOKUP VBA trong Excel. Để làm điều này, hãy thao tác theo các bước dưới đây:
Bước 1: Sắp xếp Vector tra cứu theo thứ tự tăng dần
Trước tiên, bạn cần sắp xếp Vector tra cứu theo thứ tự tăng dần. Trong ví dụ này, người dùng sẽ sử dụng tên của Product làm giá trị tra cứu. Do đó, Vector tra cứu sẽ nằm trong phạm vi C5:C14.
1. Chọn dãy ô C5:C14.
2. Chọn Home > Sort & Filter trong mục Editing > Sort A to Z.
Sau đó, cột Product sẽ được sắp xếp theo thứ tự tăng dần (như hình dưới).
Bước 2: Chèn module mới trong VBA Editor.
1. Chọn Developer > Visual Basic trong mục Code.
Sau đó, cửa sổ Microsoft Visual Basic for Applications sẽ hiển thị trên worksheet.
2. Chọn Insert > Module.
Bước 3: Nhập mã
1. Hãy nhập mã dưới đây:
Sub range_of_lookup_values()
Range("C17:C19").Value = WorksheetFunction.Lookup _
(Range("B17:B19").Value, Range("C5:C14"), Range("F5:F14"))
End Sub
2. Chọn biểu tượng Save.
3. Nhấn ALT + F11 để trở lại worksheet.
4. Nhập tên sản phẩm trong phạm vi B17:B19.
5. Nhấn ALT + F8 để mở Macro.
6. Hộp thoại Macro hiển thị, chọn range_of_lookup_values > Run.
Cuối cùng, kết quả hiển thị (như hình dưới).
Xem thêm
Khóa học Ứng dụng VBA trong Excel
Cách xóa phạm vi được đặt tên bằng Excel VBA