Trận đấu chỉ số VBA | Cách sử dụng hàm đối sánh chỉ mục trong VBA (Ví dụ)

Đối sánh chỉ mục trong VBA

Hàm INDEX & MATCH trong tổ hợp VBA là hàm thay thế cho hàm Vlookup trong excel. Trong VBA, chúng ta không nên sử dụng trực tiếp hàm INDEX & MATCH bởi vì hai hàm này không phải là một phần của các hàm tích hợp sẵn trong VBA. Tuy nhiên, chúng ta vẫn có thể sử dụng chúng như một phần của lớp hàm trang tính.

Làm thế nào để sử dụng đối sánh chỉ mục trong VBA? (Từng bước một)

Bạn có thể tải xuống Mẫu Excel Khớp Chỉ mục VBA này tại đây - Mẫu Excel Khớp Chỉ mục VBA

Ví dụ, hãy xem dữ liệu dưới đây.

Trong dữ liệu trên, giá trị tra cứu là tên Bộ phận, và dựa trên tên bộ phận này, chúng ta cần trích xuất số tiền lương.

Nhưng vấn đề ở đây là cột kết quả nằm ở cột đầu tiên và cột giá trị tra cứu nằm sau cột kết quả. Trong trường hợp này, hàm VLOOKUP không thể tìm nạp số tiền lương vì hàm VLOOKUP chỉ hoạt động từ phải sang trái chứ không phải từ trái sang phải.

Trong những trường hợp này, chúng ta cần sử dụng công thức kết hợp của hàm VBA INDEX & MATCH. Hãy thực hiện nhiệm vụ tìm số tiền lương của từng bộ phận trong mã VBA.

Bước 1: Bắt đầu thói quen phơi nắng.

Bước 2: Khai báo biến VBA Integer.

Mã:

 Sub INDEX_MATCH_Example1 () Dim k As Integer End Sub 

Bước 3: Bây giờ mở For Next Loop trong VBA.

Mã:

 Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Next k End Sub 

Bước 4: Bên trong vòng lặp VBA thực hiện công thức. Trong cột thứ 5, chúng ta cần áp dụng công thức, vì vậy mã là CELLS (k, 5) .Value =

Mã:

 Sub INDEX_MATCH_Example1 () Dim k As Integer Cho k = 2 đến 5 ô (k, 5) .Value = Next k End Sub 

Bước 5: Trong ô đó, chúng ta cần áp dụng công thức VBA INDEX & MATCH. Như tôi đã nói, chúng ta cần sử dụng các hàm này dưới dạng Hàm trang tính trong lớp vba, vì vậy hãy mở lớp chức năng trang tính.

Mã:

Sub INDEX_MATCH_Example1 () Dim k As Integer Cho k = 2 đến 5 ô (k, 5) .Value = WorksheetFunction. Tiếp theo k Kết thúc Sub

Bước 6: Sau khi nhập lớp chức năng trang tính, chúng ta có thể thấy tất cả các chức năng trang tính có sẵn vì vậy hãy chọn chức năng INDEX.

Mã:

 Sub INDEX_MATCH_Example1 () Dim k As Integer Cho k = 2 đến 5 ô (k, 5) .Value = WorksheetFunction.Index (Tiếp theo k End Sub 

Bước 7: Trong khi sử dụng hàm trang tính trong VBA, bạn cần hoàn toàn chắc chắn về các đối số của công thức. Đối số đầu tiên là mảng tức là từ cột nào chúng ta cần kết quả, trong trường hợp này, chúng ta cần kết quả từ A2 đến A5.

Mã:

 Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), Next k End Sub 

Bước 8: Tiếp theo là từ số hàng nào chúng ta cần kết quả. Như chúng ta đã thấy trong ví dụ trước đó, chúng ta không thể cung cấp số hàng theo cách thủ công mọi lúc. Vì vậy, hãy sử dụng hàm MATCH.

Để sử dụng lại hàm MATCH, chúng ta cần mở lớp Hàm Worksheet.

Mã:

 Sub INDEX_MATCH_Example1 () Dim k As Integer Cho k = 2 đến 5 ô (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Tiếp theo k End Sub 

Bước 9: Đối số đầu tiên của hàm MATCH là giá trị LOOKUP, ở đây giá trị tra cứu của chúng ta là tên bộ phận, nó nằm ở ô (2, 4).

Vì mỗi lần số hàng phải thay đổi, chúng tôi có thể cung cấp biến “k” thay cho số hàng thủ công 2. Các ô (k, 4).

Mã:

 Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5) .Value, Next k Kết thúc Sub 

Bước 10: Tiếp theo chúng ta cần đề cập đến phạm vi giá trị bộ phận tức là Phạm vi (“B2: B5”).

Mã:

 Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5). Giá trị, Phạm vi ("B2: B5"), 

Tiếp theo k

Kết thúc Sub

Bước 11: Tiếp theo đặt đối số là 0 vì chúng ta cần một đối sánh chính xác và đóng dấu ngoặc.

Mã:

 Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 to 5 Cells (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 4). Giá trị, Phạm vi ("B2: B5"), 0)) 

Tiếp theo k

Kết thúc Sub

Ok, chúng ta đã hoàn thành phần viết mã. Hãy để chúng tôi chạy mã để có kết quả trong cột 5.

Vì vậy, chúng tôi đã có kết quả.

Chúng ta có thể sử dụng công thức này để thay thế cho hàm Vlookup.