Bạn sẽ sửa lỗi gì

VLOOKUP có thể trả về một giá trị dù khóa tra cứu không tồn tại nếu đối số thứ tư cho phép khớp gần đúng. Trong bảng thực hành này, P03 không có trong danh sách SKU nhưng =VLOOKUP(D2,A2:B4,2,TRUE) vẫn trả 35 vì công thức rơi về một kết quả gần đúng. Bạn sẽ thay hành vi đó bằng khớp chính xác.

Mục tiêu học tập

Mở workbook thực hành

HANDS-ON PRACTICE

Thực hành trên bản sao của riêng bạn

Mở bản mẫu Google Sheets để tạo bản sao giữ nguyên dữ liệu, công thức, định dạng, bộ lọc và hàng cố định. Bản gốc không bị thay đổi.

Bạn cần đăng nhập Google; nếu bản gốc chưa được chia sẻ công khai, hãy tải bảng mẫu đầy đủ rồi nhập vào Google Sheets, hoặc dán dữ liệu vào trang tính của bạn.

Bảng thực hành Google Sheets với các SKU P01, P02, P10 và khóa tra cứu P02 trước khi kiểm tra VLOOKUP.

Dữ liệu mẫu

SKUPrice
P0112
P0235
P1080

Bảng tra cứu nằm ở A2:B4. P03 cố ý không tồn tại để bạn tái hiện lỗi khớp sai.

Ô tra cứuKhóa ban đầuÔ kết quả
D2P02E2

Bạn sẽ tạm đổi D2 khi chẩn đoán rồi khôi phục P02.

Vì sao VLOOKUP trả về kết quả sai

Bước 1: Đổi D2 thành P03, một SKU không tồn tại trong A2:A4. Nhập =VLOOKUP(D2,A2:B4,2,TRUE) vào E2. Trong workbook đã kiểm chứng, E2 vẫn trả 35 dù P03 không có trong bảng.

=VLOOKUP(D2,A2:B4,2,TRUE)
Ô E2 được chọn sau khi VLOOKUP khớp gần đúng trả 35 cho khóa P03 không tồn tại.

Sửa bằng khớp chính xác

Bước 2: Giữ D2 là P03 và thay TRUE bằng FALSE. Công thức trở thành =VLOOKUP(D2,A2:B4,2,FALSE). Vì P03 không tồn tại, kết quả đã kiểm chứng là #N/A thay vì một mức giá gây hiểu nhầm.

=VLOOKUP(D2,A2:B4,2,FALSE)
Ô E2 được chọn với VLOOKUP khớp chính xác trả #N/A cho SKU P03 không tồn tại.

Bước 3: Khôi phục D2 về P02. Giữ công thức khớp chính xác trong E2. Kết quả đã kiểm chứng trở lại 35.

Ô E2 được chọn với =VLOOKUP(D2,A2:B4,2,FALSE) và kết quả 35 cho khóa P02.

Kiểm tra tính lại: tạm đổi D2 từ P02 sang P10. E2 phải đổi từ 35 thành 80. Sau đó khôi phục D2 về P02 và xác nhận E2 trở lại 35.

Điểm kiểm tra

Lookup SKUCông thứcKết quả mong đợi
P02=VLOOKUP(D2,A2:B4,2,FALSE)35
P10=VLOOKUP(D2,A2:B4,2,FALSE)80
P03=VLOOKUP(D2,A2:B4,2,FALSE)#N/A

Ba trường hợp này giúp phân biệt rõ khớp chính xác với kết quả khớp gần đúng gây hiểu nhầm.

Lỗi thường gặp và cách sửa

Nếu FALSE trả #N/A cho một khóa mà bạn tin là có tồn tại, hãy so sánh khóa thật chính xác: khoảng trắng đầu/cuối, kiểu văn bản so với số hoặc vùng tra cứu bắt đầu sai cột đều có thể làm khớp chính xác thất bại. Không nên “sửa” #N/A bằng cách đổi ngược về TRUE.

Bài tập tự thực hành

Thêm tạm SKU P05 với giá 50, kiểm tra bằng FALSE rồi xóa dòng thử. Sau đó nhập một SKU không tồn tại và xác nhận công thức khớp chính xác trả #N/A thay vì giá của sản phẩm khác.

Tóm tắt kiến thức

  • ✓TRUE bật khớp gần đúng; không phù hợp với các bài tra mã ID thông thường.
  • ✓Khóa không tồn tại vẫn có thể trả về một giá trị trông hợp lý nhưng sai khi dùng khớp gần đúng.
  • ✓FALSE yêu cầu khớp chính xác và trả #N/A khi không tìm thấy khóa.
  • ✓Trong mẫu này, P02 trả 35 và P10 trả 80 với công thức chính xác.
  • ✓Hãy đổi khóa tra cứu để kiểm tra công thức tự tính lại rồi khôi phục dữ liệu mẫu.
QUICK CHECK

Tự kiểm tra kiến thức

Trả lời 4 câu hỏi dựa trên bảng tính vừa thực hành.

1. Vì sao P03 trả 35 với =VLOOKUP(D2,A2:B4,2,TRUE)?
2. Với SKU hoặc ID cần khớp chính xác, nên dùng đối số thứ tư nào?
3. VLOOKUP khớp chính xác phải trả gì cho P03 trong mẫu này?
4. Phép thử nào chứng minh E2 thật sự do công thức tính?

Bài tiếp theo

Tiếp tục với cách xử lý giá trị không tìm thấy trong XLOOKUP, nơi bạn còn có thể chỉ định trực tiếp kết quả khi không có khớp.

Tiếp theo: Sửa XLOOKUP thiếu kết quả ↗