VLOOKUP, XLOOKUP hay INDEX/MATCH: dùng hàm nào?
So sánh ba cách tra cứu dữ liệu phổ biến nhất, giải thích lỗi #N/A và các mẹo tránh sai kết quả.
Giả sử bảng BangGia có cột A: Mã hàng, B: Tên hàng, C: Đơn giá. Ở bảng bán hàng, ô A2 chứa mã hàng cần tra đơn giá.
VLOOKUP
=VLOOKUP(A2;BangGia!$A$2:$C$500;3;FALSE)
- Đối số thứ 3 (
3) là số thứ tự cột kết quả trong vùng tra cứu. - Luôn dùng FALSE (hoặc 0) ở đối số cuối để tìm chính xác. Bỏ trống sẽ tìm gần đúng và cho kết quả sai rất khó phát hiện.
- Hạn chế: chỉ tra được sang bên phải; chèn thêm cột vào bảng sẽ làm lệch số thứ tự cột.
XLOOKUP (khuyên dùng)
=XLOOKUP(A2;BangGia!A:A;BangGia!C:C;"Không tìm thấy")
- Có trong Excel 365, Excel 2021 trở lên và Google Sheets.
- Tra được cả sang trái, mặc định tìm chính xác, có sẵn giá trị khi không tìm thấy.
- Trả về được nhiều cột cùng lúc:
=XLOOKUP(A2;BangGia!A:A;BangGia!B:C).
INDEX + MATCH
=INDEX(BangGia!C:C;MATCH(A2;BangGia!A:A;0))
Hoạt động trên mọi phiên bản Excel, linh hoạt như XLOOKUP. Phù hợp khi phải gửi tệp cho người dùng Excel đời cũ.
Bảng so sánh
| VLOOKUP | XLOOKUP | INDEX/MATCH | |
|---|---|---|---|
| Dễ học | ★★★ | ★★★ | ★★ |
| Tra sang trái | Không | Có | Có |
| Bền khi chèn cột | Không | Có | Có |
| Excel đời cũ | Có | Không | Có |
Vì sao bị lỗi #N/A?
- Khoảng trắng thừa: “SP01 ” khác “SP01”. Dùng
TRIMđể làm sạch. - Số lưu dạng chữ: mã 1001 ở bảng này là số, bảng kia là văn bản. Chuyển cùng một kiểu (Data → Text to Columns → Finish là cách nhanh).
- Quên cố định vùng: kéo công thức xuống làm vùng tra cứu trượt theo. Dùng
$A$2:$C$500hoặc cả cộtA:C.
=IFERROR(VLOOKUP(A2;BangGia!$A:$C;3;FALSE);"Chưa có giá")
Bài viết có giúp ích cho bạn không?