Hàm VLOOKUP trong Excel: cách dùng, 2 điều kiện, 2 sheet

Hàm VLOOKUP là gì, cách dò tìm chính xác và gần đúng, VLOOKUP 2 điều kiện bằng cột phụ, VLOOKUP giữa 2 sheet và cách sửa lỗi #N/A thường gặp.

VLOOKUP (Vertical Lookup) tìm một giá trị ở cột đầu tiên của bảng dữ liệu, rồi trả về giá trị nằm cùng dòng ở cột bạn chỉ định. Đây là hàm tra cứu phổ biến nhất trong văn phòng: tra giá theo mã hàng, tra tên theo mã nhân viên, tra mức phụ cấp theo chức vụ.

Cú pháp VLOOKUP

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
Đối sốÝ nghĩa
lookup_valueGiá trị cần tìm, ví dụ mã hàng ở A2
table_arrayBảng tra; cột đầu tiên phải chứa giá trị cần tìm. Nên cố định bằng F4: $F$2:$H$100
col_index_numSố thứ tự cột muốn lấy, đếm từ cột đầu của bảng tra (cột đầu = 1)
range_lookupFALSE hoặc 0: dò chính xác. TRUE, 1 hoặc bỏ trống: dò gần đúng
Lưu ýMáy đặt vùng Việt Nam dùng dấu chấm phẩy: =VLOOKUP(A2;$F$2:$H$100;3;0).

Dò tìm chính xác: tra giá theo mã hàng

Bảng giá ở F2:H100 gồm Mã hàng, Tên hàng, Đơn giá. Ở bảng bán hàng, cột A là mã, cần lấy đơn giá:

=VLOOKUP(A2, $F$2:$H$100, 3, FALSE)

Hầu hết trường hợp tra mã, tra tên đều phải dùng FALSE/0. Quên đối số cuối là lỗi rất phổ biến: Excel mặc định dò gần đúng và có thể trả về giá của mặt hàng khác mà không báo lỗi.

Dò tìm gần đúng: tra theo khoảng

Dò gần đúng dùng khi tra theo ngưỡng, ví dụ hoa hồng theo doanh số. Bảng tra K2:L5 có cột ngưỡng sắp xếp tăng dần:

Doanh số từHoa hồng
00%
50.000.0002%
100.000.0003%
200.000.0005%
=VLOOKUP(C2, $K$2:$L$5, 2, TRUE)

Excel tìm ngưỡng lớn nhất nhưng không vượt quá C2. Doanh số 130 triệu sẽ nhận 3%. Nếu cột ngưỡng không tăng dần, kết quả sai.

VLOOKUP giữa 2 sheet

Bảng tra nằm ở sheet khác, ví dụ sheet BangGia:

=VLOOKUP(A2, BangGia!$A$2:$C$500, 3, 0)

Cách nhanh nhất: gõ =VLOOKUP(A2, rồi bấm sang sheet kia, kéo chọn vùng, nhấn F4, gõ tiếp. Nếu tên sheet có khoảng trắng, Excel tự bọc trong nháy đơn: 'Bảng giá'!$A$2:$C$500. Tra sang file khác cũng làm tương tự, nhưng file nguồn nên mở cùng lúc, đổi tên hoặc di chuyển file nguồn sẽ làm hỏng liên kết.

VLOOKUP 2 điều kiện bằng cột phụ

VLOOKUP chỉ tìm theo một giá trị. Khi cần tìm theo hai điều kiện (ví dụ Mã nhân viên và Tháng), tạo cột phụ ghép hai điều kiện và đặt nó làm cột đầu tiên của bảng tra:

  1. Chèn cột trống bên trái bảng dữ liệu (cột A), gõ =B2&"|"&C2 (mã & tháng) rồi kéo xuống.
  2. Ở bảng cần tra, ghép điều kiện y hệt: =VLOOKUP(G2&"|"&H2, $A$2:$E$500, 5, 0).

Ký tự | giúp tránh trùng nhầm kiểu “NV1”&“12” với “NV11”&“2”. Trên Microsoft 365, có thể bỏ cột phụ bằng XLOOKUP hoặc FILTER, xem so sánh trong bài VLOOKUP, XLOOKUP hay INDEX/MATCH.

Sửa lỗi #N/A và kết quả sai

Triệu chứngNguyên nhân thường gặpCách xử lý
#N/A dù nhìn thấy mã có trong bảngKhoảng trắng thừa, số lưu dạng văn bảnDùng TRIM; đổi kiểu dữ liệu cho đồng nhất (xem làm sạch dữ liệu)
#N/A khi kéo công thức xuốngQuên $ nên vùng tra bị trượtCố định vùng bằng F4
#REF!col_index_num lớn hơn số cột của vùngMở rộng vùng hoặc sửa số cột
Kết quả sai, không báo lỗiBỏ trống đối số cuốiThêm 0
Không tra được cột bên tráiVLOOKUP chỉ nhìn sang phảiDùng INDEX/MATCH hoặc XLOOKUP

Muốn hiện ô trống hoặc “Không có” thay vì #N/A, bọc thêm IFERROR hoặc IFNA.

Trên Google Sheets

Google Sheets có VLOOKUP cú pháp giống Excel, kể cả tham chiếu sheet khác. Muốn tra từ file Sheets khác, kết hợp với IMPORTRANGE. Google Sheets cũng có XLOOKUP nếu bạn muốn tra hai chiều.

MẹoChèn thêm cột vào giữa bảng tra sẽ làm col_index_num lệch. Định dạng bảng tra thành Excel Table hoặc chuyển sang XLOOKUP để tránh lỗi này.
Zalo