Thứ năm, 22/10/2026
ITGOCùng học IT

Hàm dò tìm VLOOKUP, HLOOKUP trong Excel: cú pháp và ví dụ

Hàm VLOOKUP trong Excel dò tìm một giá trị ở cột đầu tiên của bảng rồi trả về giá trị cùng hàng ở cột bạn chỉ định; hàm HLOOKUP làm điều tương tự theo hàng ngang. Đây là hai hàm dò tìm dùng nhiều nhất để lấy tên hàng, đơn giá hay xếp loại theo mã.

Ví dụ nhanh: =VLOOKUP("SP03";A2:C6;3;FALSE) → 7.000 (đơn giá của mã SP03 trong bảng ví dụ 1)

Nguồn: tài liệu hàm VLOOKUP và hàm HLOOKUP của Microsoft, đối chiếu ngày 07/10/2026. Áp dụng cho Excel cho Microsoft 365, Excel 2021, 2019, 2016 và các bản cũ hơn.

hàm vlookup: ví dụ 1 với bảng dữ liệu và kết quả công thức (minh hoạ)
hàm vlookup: ví dụ 1 với bảng dữ liệu và kết quả công thức (minh hoạ)

Cú pháp hàm VLOOKUP và HLOOKUP

VLOOKUP dò theo cột dọc (Vertical), HLOOKUP dò theo hàng ngang (Horizontal). Hai hàm có cùng bốn đối số; máy cài tiếng Việt thường dùng dấu chấm phẩy (;) ngăn cách đối số, máy cài tiếng Anh dùng dấu phẩy (,).

=VLOOKUP(lookup_value; table_array; col_index_num; [range_lookup]) =HLOOKUP(lookup_value; table_array; row_index_num; [range_lookup])

Đối số Bắt buộc? Ý nghĩa
lookup_value Có Giá trị cần tìm, phải nằm ở cột đầu (VLOOKUP) hoặc hàng đầu (HLOOKUP) của bảng.
table_array Có Vùng bảng dò tìm, nên khoá bằng dấu $ (ví dụ $A$2:$C$6) để copy công thức không bị lệch.
col_index_num / row_index_num Có Thứ tự cột (hoặc hàng) trong bảng chứa giá trị cần lấy; cột đầu tiên của bảng là 1.
range_lookup Không FALSE (hoặc 0) để tìm chính xác; TRUE (hoặc bỏ trống) để tìm gần đúng, khi đó cột đầu phải sắp xếp tăng dần.

Ví dụ 1: Tra tên hàng và đơn giá theo mã

Bảng hàng hoá ở A1:C6; ô E2 chứa mã cần tìm. Công thức lấy tên hàng (cột 2) và đơn giá (cột 3) của mã đó.

A B C D E
1 Mã Tên hàng Đơn giá Mã cần tìm
2 SP01 Bút bi 5000 SP03
3 SP02 Vở 120 trang 12000
4 SP03 Thước kẻ 7000
5 SP04 Bút chì 3000
6 SP05 Tẩy 4000
Ô Công thức Kết quả Giải thích
F2 =VLOOKUP(E2;$A$2:$C$6;2;FALSE) Thước kẻ Cột 2 là Tên hàng
G2 =VLOOKUP(E2;$A$2:$C$6;3;FALSE) 7.000 Cột 3 là Đơn giá

Đổi E2 sang SP05, hai ô kết quả lần lượt thành «Tẩy» và 4.000.

Ví dụ 2: Xếp loại học lực bằng dò tìm gần đúng

Bảng mốc điểm ở A1:B6 sắp tăng dần. Với TRUE, VLOOKUP lấy mốc lớn nhất không vượt quá điểm của học sinh.

A B C D E
1 Điểm từ Xếp loại Học sinh Điểm
2 0 Yếu An 7.2
3 5 Trung bình Bình 9.1
4 6.5 Khá Chi 4.5
5 8 Giỏi Dũng 8
6 9 Xuất sắc
Ô Công thức Kết quả Giải thích
F2 =VLOOKUP(E2;$A$2:$B$6;2;TRUE) Khá 7,2 nằm giữa mốc 6,5 và 8
F3 =VLOOKUP(E3;$A$2:$B$6;2;TRUE) Xuất sắc 9,1 ≥ mốc 9
F4 =VLOOKUP(E4;$A$2:$B$6;2;TRUE) Yếu 4,5 nằm giữa mốc 0 và 5
F5 =VLOOKUP(E5;$A$2:$B$6;2;TRUE) Giỏi 8 trùng đúng mốc 8

Nếu bảng mốc không sắp tăng dần, dò tìm gần đúng có thể trả về kết quả sai mà không báo lỗi.

hàm vlookup: ví dụ 2 với bảng dữ liệu và kết quả công thức (minh hoạ)
hàm vlookup: ví dụ 2 với bảng dữ liệu và kết quả công thức (minh hoạ)

Ví dụ 3: HLOOKUP tra phí giao hàng theo vùng

Bảng phí xếp theo hàng ngang: hàng 1 là tên vùng, hàng 2 là phí, hàng 3 là số ngày giao.

A B C D
1 Vùng Miền Bắc Miền Trung Miền Nam
2 Phí (đồng) 30000 25000 35000
3 Ngày giao 2 3 2
Ô Công thức Kết quả Giải thích
F2 =HLOOKUP("Miền Trung";$B$1:$D$3;2;FALSE) 25.000 Hàng 2 của bảng là Phí
F3 =HLOOKUP("Miền Nam";$B$1:$D$3;3;FALSE) 2 Hàng 3 là Ngày giao

Ví dụ 4: Báo «Không có mã» thay cho lỗi #N/A

Dùng lại bảng của ví dụ 1. Khi mã không có trong bảng, VLOOKUP trả #N/A; bọc trong IFERROR để hiện thông báo dễ hiểu.

A B C D E
1 Mã Tên hàng Đơn giá Mã cần tìm
2 SP01 Bút bi 5000 SP09
3 SP02 Vở 120 trang 12000
4 SP03 Thước kẻ 7000
5 SP04 Bút chì 3000
6 SP05 Tẩy 4000
Ô Công thức Kết quả Giải thích
F2 =IFERROR(VLOOKUP(E2;$A$2:$C$6;2;FALSE);"Không có mã") Không có mã SP09 không có trong cột Mã

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

Lỗi Nguyên nhân Cách sửa
#N/A Không tìm thấy giá trị: gõ sai mã, thừa dấu cách, hoặc mã là số ở một bên và chữ ở bên kia. Dùng TRIM để bỏ dấu cách; đưa cả hai về cùng kiểu (số hoặc văn bản); kiểm tra lại mã.
#REF! col_index_num lớn hơn số cột của table_array. Mở rộng vùng bảng hoặc giảm số thứ tự cột.
#VALUE! col_index_num nhỏ hơn 1. Số thứ tự cột phải từ 1 trở lên.
Kết quả sai, không báo lỗi Dùng TRUE (hoặc bỏ trống) khi cột đầu chưa sắp xếp, hoặc khi cần tìm chính xác. Ghi rõ FALSE khi tra mã; chỉ dùng TRUE cho bảng mốc đã sắp tăng dần.
Copy công thức bị lệch bảng table_array không khoá $, kéo xuống làm vùng bảng trượt theo. Khoá vùng bảng: $A$2:$C$6 (nhấn F4 khi chọn vùng).

VLOOKUP khác INDEX + MATCH và XLOOKUP thế nào?

VLOOKUP chỉ dò được cột đầu tiên và trả về cột nằm bên phải. Khi cần tra ngược sang trái hoặc bảng hay chèn thêm cột, hãy kết hợp hàm INDEX và MATCH; Excel cho Microsoft 365 và Excel 2021 còn có hàm XLOOKUP, theo tài liệu Microsoft có thể dò theo cả hai chiều và mặc định tìm chính xác.

Tiêu chí VLOOKUP INDEX + MATCH XLOOKUP
Tra sang trái Không Có Có
Mặc định Gần đúng (nếu bỏ trống đối số 4) Tuỳ đối số của MATCH Chính xác
Phiên bản Mọi bản Mọi bản Microsoft 365, Excel 2021 trở lên

Xem thêm các hàm khác trong bài các hàm trong Excel.

Tải file Excel mẫu

File mẫu gồm 4 trang tính, mỗi trang là một ví dụ ở trên với công thức để sẵn; Excel tự tính lại khi mở. Tải file Excel mẫu (.xlsx).

Câu hỏi thường gặp

VLOOKUP có tìm được giá trị nằm bên trái cột dò không?

Không. VLOOKUP chỉ trả về cột nằm bên phải cột đầu tiên của vùng bảng. Dùng INDEX + MATCH hoặc XLOOKUP khi cần lấy dữ liệu bên trái.

VLOOKUP có phân biệt chữ hoa, chữ thường không?

Không. «sp03» và «SP03» được coi là giống nhau.

Nên dùng dấu phẩy hay dấu chấm phẩy trong công thức?

Tuỳ cài đặt vùng của Windows. Máy đặt định dạng Việt Nam thường dùng dấu chấm phẩy; nếu Excel báo lỗi công thức, hãy đổi sang dấu phẩy.

Xem thêm các thủ thuật Excel khác tại ITGO.

Để lại bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Bài viết liên quan