VBA Application.Match - Hướng dẫn từng bước với các ví dụ

Ứng dụng Excel VBA.Match

Một trong những điều tốt nhất về VBA là nó có chức năng riêng và nó cũng sẽ cho phép chúng ta truy cập vào tất cả các chức năng của trang tính trong lớp “Hàm trang tính”. Bạn hẳn đã sử dụng hàm MATCH như một hàm trang tính, nhưng nó không phải là một hàm VBA, vì vậy chúng ta cần truy cập dưới lớp hàm trang tính. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách sử dụng hàm MATCH trong VBA bằng phương thức Ứng dụng.

Tóm tắt nhanh chức năng MATCH

MATCH là một hàm tra cứu tìm kiếm vị trí của giá trị tra cứu trong mảng tra cứu được đề cập. Ví dụ, hãy xem hình ảnh dữ liệu bên dưới.

Trong dữ liệu trên, chúng ta có các tháng từ A2 đến A6, và nếu chúng ta muốn biết tháng “Mar” xảy ra ở nơi nào, thì chúng ta có thể sử dụng hàm MATCH.

Dưới đây là cú pháp của hàm MATCH.

MATCH (Giá trị tra cứu, Mảng tra cứu, (Loại đối sánh))
  • Giá trị Tra cứu: Với giá trị nào chúng tôi đang tìm kiếm vị trí trong mảng tra cứu.
  • Mảng tra cứu: Trong mảng nào chúng ta đang tìm kiếm vị trí của giá trị tra cứu.
  • (Loại đối sánh): Đối với điều này, chúng tôi có thể cung cấp ba đối số.
  1. 1 = Ít hơn
  2. 0 = Kết hợp Chính xác
  3. -1 = Lớn hơn

Hầu hết thời gian, chúng tôi chỉ sử dụng "0 Đối sánh Chính xác".

Làm thế nào để sử dụng Hàm Application.Match trong VBA?

Ví dụ 1

Nhìn vào dữ liệu dưới đây trong excel.

Từ dữ liệu trên, chúng ta cần tìm vị trí của tháng “Mar” trong phạm vi ô từ A2 đến A6. Vì chúng ta cần kết quả trong các ô D2 ngay lập tức, hãy bắt đầu mã là Phạm vi (“D2”). Giá trị =.

Để đến giá trị trong ô D2, chúng ta cần sử dụng hàm trang tính MATCH, vì vậy, để truy cập điều này trước tiên, chúng ta cần truy cập đối tượng APPLICATION và sau đó là đối tượng WORKSHEET FUNCTION.

Nhập dấu chấm để xem danh sách các hàm trang tính.

Chọn "Đối sánh" từ danh sách.

Một trong những vấn đề trong VBA khi sử dụng các hàm trang tính là chúng ta không thấy cú pháp chính xác như chúng ta thấy với hàm trang tính. Đây là một trong những lý do chúng tôi đã chỉ giải thích cú pháp ở phần đầu.

Vì vậy, đối số đầu tiên là giá trị tra cứu, nghĩa là chúng ta đang tìm giá trị nào để tìm vị trí. Trong trường hợp này, chúng tôi đang tìm vị trí cho “Mar” nằm trong ô C2, vì vậy hãy cung cấp tham chiếu ô.

Đối số tiếp theo là mảng tra cứu, tức là trong phạm vi nào chúng ta đang tìm kiếm vị trí của giá trị tra cứu , cho các ô cung cấp này từ A2 đến A6.

Đối số cuối cùng sẽ là một đối sánh chính xác, vì vậy cung 0.

Mã:

Sub Match_Example1 () Range ("D2"). Value = Application.WorksheetFunction.Match (Range ("C2"). Value, Range ("A2: A6"), 0) End Sub

Ok, chúng ta đã hoàn thành công thức.

Chạy mã thông qua phím F5 và xem những gì chúng tôi nhận được.

Vì vậy, chúng tôi nhận được kết quả là 3 vì giá trị "Mar" ở vị trí thứ 3 trong phạm vi A2 đến A6.

Hàm MATCH này có thể cung cấp vị trí của giá trị tra cứu. Tuy nhiên, hàm MATCH phần lớn được sử dụng với hàm Vlookup để cung cấp số chỉ mục cột dựa trên tiêu đề cột.

Ví dụ số 2

Bây giờ chúng ta sẽ xem cách sử dụng MATCH như một hàm hỗ trợ cho hàm VLOOKUP.

Nhìn vào dữ liệu dưới đây.

Trong bảng trên, chúng ta đang xem xét doanh số bán hàng tháng "tháng 2" năm 2018, vì vậy chúng ta cần sử dụng hàm VLOOKUP. VLOOKUP cũng là một hàm trang tính, vì vậy hãy truy cập hàm này giống như cách chúng ta đã truy cập hàm MATCH.

Giá trị Tra cứu sẽ là ô G2, vì vậy hãy cung cấp địa chỉ ô.

Mã:

Sub Match_Example2 () Range ("H2"). Value = Application.WorksheetFunction.VLookup (Range ("G2"). Giá trị, End Sub

Mảng bảng sẽ từ A2 đến D6.

Mã:

Sub Match_Example2 () Range ("H2"). Value = Application.WorksheetFunction.VLookup (Range ("G2"). Value, Range ("A2: D6"), End Sub

Bây giờ chúng ta cần cung cấp từ cột nào của mảng bảng mà chúng ta đang tìm kiếm kết quả, vì vậy đây sẽ là từ cột thứ 3 . Thay vì cung cấp số cột là 3, hãy sử dụng hàm MATCH.

Mã:

Sub Match_Example2 () Range ("H2"). Giá trị = Application.WorksheetFunction.VLookup (Phạm vi ("G2"). Giá trị, Phạm vi ("A2: D6"), Application.WorksheetFunction.Match (Phạm vi ("H1")). Giá trị, Phạm vi ("A1: D1"), 0), 0) Kết thúc Sub

Vì vậy, hàm MATCH cung cấp số cột từ phạm vi A1 đến D1 cho tháng “Tháng 2”. Hãy chạy mã và xem cách nó tự động lấy số cột.

Đây là kết quả từ cột số 2 nhờ cung cấp số cột tự động từ hàm MATCH.

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

  • Hàm MATCH tìm kiếm vị trí của giá trị tra cứu trong bảng mảng đã chọn.
  • Hàm MATCH chủ yếu được sử dụng với hàm Vlookup để cung cấp số chỉ mục cột tự động bằng cách sử dụng tiêu đề cột.
  • Hàm MATCH có sẵn dưới dạng hàm trang tính trong VBA.

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