Lỗi VLOOKUP & INDEX-MATCH Trong Google Sheets: Nguyên Nhân & Cách Xử Lý Dứt Điểm
VLOOKUP trả về #N/A dù dữ liệu rõ ràng đang ở đó — bạn không phải người duy nhất gặp vấn đề này.
7 lỗi VLOOKUP phổ biến nhất, so sánh với INDEX-MATCH, và hướng dẫn chọn đúng hàm cho từng tình huống — giải quyết dứt điểm một lần.
Mục lục:
1. Tại Sao VLOOKUP Hay Bị Lỗi?
VLOOKUP là hàm tìm kiếm phổ biến nhất Google Sheets nhưng cũng là hàm bị lỗi nhiều nhất. Lý do chính:
Giới hạn của VLOOKUP:
- ❌ Chỉ tìm từ trái sang phải
- ❌ Không tìm được theo cột bên trái
- ❌ Khi thêm/xóa cột, column index bị sai
- ❌ Mặc định là approximate match (gây sai kết quả)
- ❌ Không phân biệt chữ hoa/thường
Cú pháp VLOOKUP:
=VLOOKUP(lookup_value, table_array, col_index, [range_lookup])
- lookup_value: Giá trị cần tìm
- table_array: Vùng dữ liệu
- col_index: Số thứ tự cột kết quả
- range_lookup: FALSE = exact match ✅
2. 7 Lỗi VLOOKUP Phổ Biến Và Cách Sửa
Lỗi #N/A — Không tìm thấy giá trị
Nguyên nhân phổ biến nhất: Bạn đang dùng approximate match (thiếu FALSE ở cuối) hoặc có khoảng trắng thừa.
❌ Sai:
=VLOOKUP(A2, B:D, 2)
✅ Đúng:
=VLOOKUP(A2, B:D, 2, FALSE)
Thêm TRIM để xóa khoảng trắng: =VLOOKUP(TRIM(A2), B:D, 2, FALSE)
Kiểu dữ liệu không khớp (Text vs Number)
VLOOKUP("1001", ...) khác VLOOKUP(1001, ...). Một cái là text, một cái là số — dù nhìn giống nhau.
❌ Mã SP dạng text, tìm bằng số:
=VLOOKUP(1001, A:C, 2, FALSE)
✅ Chuyển cùng kiểu:
=VLOOKUP(TEXT(A2,"0"), B:D, 2, FALSE)
Column Index bị sai khi thêm cột
col_index=3 hôm nay có thể thành col_index sai sau khi ai đó thêm cột vào giữa bảng.
Giải pháp: Dùng MATCH để tự động tìm số cột thay vì hardcode: =VLOOKUP(A2, B:F, MATCH("Giá", B1:F1, 0), FALSE)
Range không được khóa khi copy công thức
Khi copy VLOOKUP xuống nhiều hàng, table_array bị dịch chuyển theo.
❌ Range không khóa:
=VLOOKUP(A2, B2:D100, 2, FALSE)
✅ Dùng $ khóa range:
=VLOOKUP(A2, $B$2:$D$100, 2, FALSE)
Cần tìm từ phải sang trái
VLOOKUP chỉ trả về giá trị bên phải cột tìm kiếm. Cần kết quả bên trái? Phải dùng INDEX-MATCH.
=INDEX(A:A, MATCH(D2, B:B, 0))
→ Tìm giá trị ở cột A dựa trên cột B — không giới hạn hướng
Giá trị trùng lặp — chỉ lấy được cái đầu tiên
Nếu có nhiều dòng cùng mã SP, VLOOKUP chỉ trả về dòng đầu tiên tìm thấy.
Giải pháp: Dùng FILTER hoặc QUERY để lấy tất cả kết quả trùng: =FILTER(C:C, A:A="SP001")
Chậm với dữ liệu lớn
VLOOKUP trên cả cột (A:A thay vì A1:A1000) chậm hơn 10x khi dữ liệu lớn.
Giải pháp: Giới hạn range cụ thể, hoặc dùng VLOOKUP kết hợp với INDIRECT để tối ưu.
3. VLOOKUP vs INDEX-MATCH: So Sánh Chi Tiết
| Tiêu chí | VLOOKUP | INDEX-MATCH |
|---|---|---|
| Hướng tìm kiếm | Chỉ trái → phải ❌ | Mọi hướng ✅ |
| Khi thêm/xóa cột | Bị sai ❌ | Tự điều chỉnh ✅ |
| Tốc độ (dữ liệu lớn) | Chậm hơn ❌ | Nhanh hơn ✅ |
| Dễ học | Dễ hơn ✅ | Phức tạp hơn ❌ |
| Tìm kiếm 2 chiều | Không ❌ | Có ✅ |
4. Khi Nào Dùng Cái Nào?
Dùng VLOOKUP khi:
- ✅ Bảng dữ liệu đơn giản, ít thay đổi cấu trúc
- ✅ Mới học, cần công thức dễ nhớ
- ✅ Dữ liệu nhỏ (< 5000 dòng)
- ✅ Chỉ cần tìm sang phải
Dùng INDEX-MATCH khi:
- ✅ Cần tìm sang trái
- ✅ Bảng hay thêm/xóa cột
- ✅ Dữ liệu lớn (> 10000 dòng)
- ✅ Tìm kiếm 2 chiều (row + column)
5. Ví Dụ Thực Tế: Tra Cứu Giá Sản Phẩm
Bài toán: Có bảng sản phẩm, cần tra cứu giá theo mã SP nhập vào ô tìm kiếm.
// Cách 1: VLOOKUP (cơ bản)
=IFERROR(VLOOKUP(F2, $A$2:$D$100, 3, FALSE), "Không tìm thấy")
// Cách 2: INDEX-MATCH (linh hoạt hơn)
=IFERROR(INDEX($C$2:$C$100, MATCH(F2, $A$2:$A$100, 0)), "Không tìm thấy")
// Cách 3: XLOOKUP (Google Sheets 2023+)
=XLOOKUP(F2, A2:A100, C2:C100, "Không tìm thấy")
6. XLOOKUP — Thay Thế Tốt Hơn Cả Hai
Google Sheets đã hỗ trợ XLOOKUP từ 2022. Đây là hàm tìm kiếm thế hệ mới:
XLOOKUP giải quyết mọi vấn đề của VLOOKUP:
- ✅ Tìm được mọi hướng
- ✅ Có giá trị mặc định nếu không tìm thấy (không cần IFERROR)
- ✅ Hỗ trợ wildcard, exact/approximate match
- ✅ Nhanh hơn VLOOKUP
- ✅ Cú pháp đơn giản hơn INDEX-MATCH
=XLOOKUP(F2, A2:A100, C2:C100, "N/A", 0)
Phần Mềm Quản Lý Bán Hàng — Không Cần VLOOKUP
SheetStore tự động tra cứu giá, tồn kho, thông tin khách hàng — bạn chỉ cần nhập mã hàng
Xem Phần Mềm📚 Bài Viết Liên Quan
- Template Google Sheets Báo Cáo Bán Hàng Theo Vùng và Đại Lý 2027: Phân Tích Đa Chiều
- Google Sheets Nâng Cao Bài 5: Apps Script - Tự Động Hóa Với JavaScript
- Mẫu Báo Cáo Tài Chính Doanh Nghiệp Google Sheets 2026: P&L, Cash Flow, Balance Sheet
- Xu Hướng Phần Mềm Quản Lý Bán Hàng 2027: AI, Tự Động Hóa và Omnichannel
Chia sẻ bài viết:
Tuân Hoang
Đội ngũ SheetStore
Bạn thấy bài viết hữu ích?
Đăng ký nhận thông báo khi có bài viết mới.