MATCH
MATCH(giá_trị_tìm, vùng_một_chiều, [kiểu_khớp])Trả về VỊ TRÍ THỨ MẤY của một giá trị trong một cột hoặc một dòng. Con số đó thường được đưa thẳng cho INDEX, hoặc dùng để kiểm tra một mã có tồn tại trong danh mục hay không.
Các đối số
| Đối số | Bắt buộc? | Ý nghĩa |
|---|---|---|
| giá_trị_tìm | Bắt buộc | Giá trị cần biết nằm ở vị trí thứ mấy. |
| vùng_một_chiều | Bắt buộc | Một cột hoặc một dòng. Đưa cả bảng hai chiều vào là lỗi. |
| kiểu_khớp | Tuỳ chọn | 0 = chính xác, gần như luôn dùng · 1 hoặc bỏ trống = giá trị lớn nhất còn nhỏ hơn hoặc bằng, đòi vùng sắp TĂNG dần · -1 = giá trị nhỏ nhất còn lớn hơn hoặc bằng, đòi vùng sắp GIẢM dần. |
Trả về gì
Số thứ tự tính từ đầu vùng. Không tìm thấy thì trả về #N/A.
Ví dụ
=MATCH(B2, $A$2:$A$500, 0)B2 nằm ở dòng thứ mấy trong danh mục
Kết quả: 37
=ISNUMBER(MATCH(B2, DanhMuc, 0))Kiểm tra mã có trong danh mục không, trả về ĐÚNG/SAI thay vì lỗi
Kết quả: TRUE
=MATCH("Đơn giá", $A$1:$H$1, 0)Cột Đơn giá là cột thứ mấy — đưa cho VLOOKUP để chèn cột không còn làm sai
Kết quả: 5
Lưu ý khi dùng
- Bỏ trống kiểu_khớp là mặc định 1, tức dò gần đúng — quên gõ số 0 là nguồn sai âm thầm phổ biến nhất của hàm này.
- Ghép MATCH vào đối số số_thứ_tự_cột của VLOOKUP thì chèn cột vào bảng danh mục cũng không làm hỏng công thức.
Bẫy hay dính
MATCH so sánh KHÔNG phân biệt hoa thường nhưng phân biệt kiểu dữ liệu: số 1001 và chuỗi "1001" là hai thứ khác nhau. Trước khi kết luận dữ liệu thiếu, kiểm =ISNUMBER(ô) ở cả hai bên.
Chọn cái nào
VLOOKUP hay INDEX + MATCH
INDEX+MATCH nhanh hơn trên bảng rất lớn và không phụ thuộc số thứ tự cột, nên chèn cột vào giữa bảng dò cũng không sai. VLOOKUP dễ đọc hơn cho người mới. Bảng 200.000 dòng mà kéo VLOOKUP là máy ì thấy rõ.
=INDEX($C:$C, MATCH(B2, $A:$A, 0))