Có thể bạn quan tâm: Dòng Cuối Cùng Của Excel: Khám Phá, Ứng Dụng Và Mẹo Tối Ưu
Mở Đầu: Tại Sao VLOOKUP Lại Quan Trọng?
Trong môi trường làm việc hiện đại, việc xử lý dữ liệu nhanh chóng và chính xác là yếu tố quyết định thành công của nhiều doanh nghiệp và cá nhân. Microsoft Excel, với hàng loạt hàm và công cụ mạnh mẽ, đã trở thành “cây bút” không thể thiếu trong việc quản lý và phân tích dữ liệu. Trong số các hàm phổ biến, VLOOKUP (viết tắt của “Vertical Lookup”) nổi bật như một công cụ tìm kiếm và tra cứu dữ liệu cực kỳ hữu ích.
VLOOKUP cho phép người dùng tìm kiếm một giá trị trong cột đầu tiên của một bảng dữ liệu, sau đó trả về một giá trị tương ứng nằm ở cột khác trong cùng một hàng. Điều này giúp:
- Kết hợp dữ liệu từ nhiều bảng hoặc sheet khác nhau.
- Tự động cập nhật thông tin khi dữ liệu nguồn thay đổi.
- Tiết kiệm thời gian so với việc tra cứu thủ công.
- Giảm thiểu lỗi nhập liệu do con người.
Bài viết dưới đây sẽ cung cấp cho bạn một hướng dẫn chi tiết, từng bước một, từ những kiến thức cơ bản nhất cho người mới bắt đầu, tới các kỹ thuật nâng cao, mẹo tối ưu và các lỗi thường gặp khi sử dụng VLOOKUP. Hãy cùng khám phá để trở thành “bậc thầy” VLOOKUP trong Excel nhé!
Có thể bạn quan tâm: Hướng Dẫn Chèn File Pdf Vào Excel: Từ Cơ Bản Tới Nâng Cao
1. Cú Pháp Cơ Bản Của VLOOKUP
1.1. Cấu Trúc Hàm
=VLOOKUP(lookup_value, table_array, col_index_num, range_lookup)
| Tham số | Mô tả |
|---|---|
| lookup_value | Giá trị cần tìm kiếm (có thể là số, văn bản, ngày tháng, hoặc ô chứa giá trị). |
| table_array | Phạm vi bảng dữ liệu (có thể là một dải ô, một bảng (Table), hoặc một tên vùng). |
| col_index_num | Số thứ tự của cột trong table_array mà bạn muốn trả về kết quả (bắt đầu từ 1 cho cột đầu tiên). |
| range_lookup | Tùy chọn: TRUE (hoặc bỏ trống) để tìm kiếm gần đúng, FALSE để tìm kiếm chính xác. |
Lưu ý: VLOOKUP luôn tìm kiếm trong cột đầu tiên của
table_array. Nếu cột chứalookup_valuekhông phải là cột đầu tiên, bạn sẽ cần sử dụng hàm INDEX-MATCH hoặc chuyển đổi bảng.
1.2. Ví Dụ Cơ Bản
Giả sử bạn có bảng Sản phẩm (Sheet1) như sau:
| A (Mã SP) | B (Tên SP) | C (Giá) |
|---|---|---|
| P001 | Bút bi | 5,000 |
| P002 | Sổ ghi chép | 12,000 |
| P003 | Thước kẻ | 3,500 |
Bạn muốn tra cứu Giá dựa trên Mã SP nhập vào ô E2. Công thức:
=VLOOKUP(E2, A2:C4, 3, FALSE)
E2là lookup_value (Mã SP cần tra cứu).A2:C4là table_array.3là col_index_num (cột Giá).FALSEyêu cầu tìm kiếm chính xác.
Nếu nhập P002 vào E2, kết quả trả về sẽ là 12,000.
Có thể bạn quan tâm: Dàn Áo Xe Excel 2: Hướng Dẫn Chi Tiết Từ A Đến Z Cho Người Mới Bắt Đầu
2. Chuẩn Bị Dữ Liệu Trước Khi Dùng VLOOKUP
2.1. Đảm Bảo Cột Lookup Là Cột Đầu Tiên
VLOOKUP luôn tìm kiếm trong cột đầu tiên của table_array. Nếu dữ liệu của bạn không sắp xếp như vậy, bạn có thể:
- Sắp xếp lại cột: Di chuyển cột chứa giá trị tra cứu lên vị trí đầu tiên.
- Sử dụng hàm CHOOSE để tạo một bảng tạm:
=VLOOKUP(E2, CHOOSE({1,2}, A2:A4, C2:C4), 2, FALSE). (Kỹ thuật này thường dùng trong các trường hợp phức tạp.)
2.2. Loại Bỏ Dòng Trống Và Dòng Tiêu Đề
Dòng tiêu đề không được tính vào table_array. Đảm bảo rằng phạm vi bạn chọn không bao gồm tiêu đề hoặc sử dụng bảng (Table) để Excel tự quản lý tiêu đề.
2.3. Định Dạng Dữ Liệu Đồng Nhất
- Số vs Văn bản: Nếu
lookup_valuelà số nhưng cột trong bảng là văn bản, VLOOKUP sẽ không tìm thấy. Dùng hàmVALUEhoặcTEXTđể chuyển đổi. - Khoảng trắng: Loại bỏ khoảng trắng thừa bằng
TRIM. - Chữ hoa/thường: VLOOKUP không phân biệt hoa thường, nhưng để tránh lỗi, bạn có thể chuẩn hoá bằng
UPPERhoặcLOWER.
2.4. Sắp Xếp Dữ Liệu Khi Dùng Tìm Kiếm Gần Đúng (TRUE)
Nếu range_lookup được đặt là TRUE (hoặc bỏ trống), dữ liệu phải được sắp xếp tăng dần theo cột lookup. Khi không sắp xếp, kết quả có thể sai.
3. Tìm Kiếm Chính Xác vs Gần Đúng
3.1. Tìm Kiếm Chính Xác (FALSE)
- Mục đích: Tìm giá trị đúng bằng
lookup_value. - Khi dùng: Khi bạn cần dữ liệu chính xác (mã khách hàng, số chứng từ, v.v.).
- Ví dụ:
=VLOOKUP("P003", A2:C4, 2, FALSE)trả về “Thước kẻ”.
3.2. Tìm Kiếm Gần Đúng (TRUE)
- Mục đích: Tìm giá trị gần nhất không vượt quá
lookup_value. - Yêu cầu: Cột lookup phải được sắp xếp tăng dần.
- Ứng dụng: Tra cứu mức thuế, bảng lương, giá trị dựa trên khoảng.
- Ví dụ: Giả sử bảng lương:
| Hệ số | Lương (triệu) |
|---|---|
| 1.0 | 5 |
| 1.5 | 6.5 |
| 2.0 | 8 |
| 2.5 | 9.5 |
Nếu nhập hệ số 1.8 và dùng =VLOOKUP(1.8, A2:B5, 2, TRUE), Excel sẽ trả về 6.5 (hệ số 1.5 là gần nhất không vượt quá 1.8).
4. Sử Dụng VLOOKUP Với Bảng (Table) Và Tên Phạm Vi
4.1. Tạo Bảng (Table)

Có thể bạn quan tâm: Dùng Data Table Trong Excel: Hướng Dẫn Toàn Diện Từ Cơ Bản Đến Nâng Cao
- Chọn dải dữ liệu →
Ctrl + T→ Đánh dấu “My table has headers”. - Bảng sẽ tự động mở rộng khi thêm dòng mới, và các công thức sẽ tự cập nhật.
4.2. Công Thức Với Tên Bảng
Giả sử bảng trên được đặt tên tblSanPham, công thức:
=VLOOKUP(E2, tblSanPham, 3, FALSE)
- Lợi ích: Không cần cập nhật phạm vi khi thêm hoặc xóa dòng.
- Đọc hiểu dễ dàng hơn.
4.3. Sử Dụng Cấu Trúc Structured References
Bạn có thể tham chiếu trực tiếp tới cột:
=VLOOKUP(E2, tblSanPhamMaSP:tblSanPhamGia, 3, FALSE)
Hoặc dùng XLOOKUP (Excel 365/2026) để thay thế VLOOKUP với cú pháp đơn giản hơn:
=XLOOKUP(E2, tblSanPhamMaSP, tblSanPhamGia)
5. Kết Hợp VLOOKUP Với Các Hàm Khác
5.1. Kết Hợp IFERROR Để Xử Lý Lỗi
Khi VLOOKUP không tìm thấy giá trị, nó trả về lỗi #N/A. Để tránh hiển thị lỗi, dùng IFERROR:
=IFERROR(VLOOKUP(E2, A2:C4, 3, FALSE), "Không tồn tại")
5.2. Kết Hợp LEFT, RIGHT, MID Để Tách Mã
Nếu lookup_value chứa phần mã và bạn cần tách ra, dùng hàm text:
=VLOOKUP(LEFT(E2,4), A2:C4, 3, FALSE)
5.3. Kết Hợp CONCATENATE (hoặc &) Để Tạo Khóa Kết Hợp
Khi tra cứu dựa trên hai cột, bạn có thể tạo một khóa ghép:
- Tạo cột phụ trong bảng:
=A2&B2(Mã + Tên). - Tạo cột phụ trong lookup:
=E2&F2. - Sau đó dùng VLOOKUP trên cột phụ.
5.4. Kết Hợp ROW() Hoặc COLUMN() Để Động Hóa col_index_num
Nếu muốn sao chép công thức sang các cột khác mà col_index_num tự động tăng, dùng:
=VLOOKUP($E2, $A$2:$D$100, COLUMN(B1), FALSE)
- Khi công thức được sao chép sang cột C,
COLUMN(C1)trả về 3 → trả về cột thứ 3 trong bảng.
5.5. Kết Hợp MATCH Để Xác Định col_index_num Tự Động
Thay vì hardcode col_index_num, dùng MATCH để tìm vị trí cột:
=VLOOKUP(E2, A2:D100, MATCH("Giá", A1:D1, 0), FALSE)
MATCH("Giá", A1:D1, 0)trả về số thứ tự của cột “Giá”.
6. Các Lỗi Thường Gặp Khi Dùng VLOOKUP Và Cách Khắc Phục
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
#N/A | Không tìm thấy giá trị (lookup_value không tồn tại hoặc không chính xác). | Kiểm tra dữ liệu, dùng TRIM, UPPER, hoặc IFERROR. |
#REF! | col_index_num vượt quá số cột trong table_array. | Đảm bảo col_index_num không lớn hơn số cột. |
#VALUE! | Tham số không hợp lệ (ví dụ: col_index_num không phải số). | Kiểm tra lại công thức, chuyển đổi sang số bằng VALUE. |
Kết quả sai khi dùng TRUE | Dữ liệu không được sắp xếp tăng dần. | Sắp xếp lại cột lookup hoặc dùng FALSE. |
| Tra cứu sai vì khoảng trắng | Dữ liệu có dấu cách thừa. | Dùng TRIM hoặc CLEAN. |
| Không trả về kết quả khi cột lookup không phải cột đầu tiên | VLOOKUP chỉ tìm trong cột đầu tiên. | Sắp xếp lại bảng, hoặc dùng INDEX-MATCH. |
7. Khi Nào Nên Dùng VLOOKUP, Khi Nào Nên Dùng INDEX-MATCH Hoặc XLOOKUP
| Tình huống | VLOOKUP | INDEX-MATCH | XLOOKUP |
|---|---|---|---|
| Cột lookup không phải cột đầu tiên | Không (cần tái cấu trúc) | Có (MATCH xác định vị trí) | Có (có tham số lookup_array và return_array) |
| Cần tra cứu cả từ trái sang phải và phải sang trái | Không | Có | Có |
| Cần tìm giá trị gần đúng và trả về giá trị mặc định nếu không tìm thấy | Có (TRUE) | Có (kết hợp MATCH với IFERROR) | Có (có tham số if_not_found) |
| Dữ liệu thường thay đổi, thêm dòng | Có (đặt thành Table) | Có (đặt thành Table) | Có (đặt thành Table) |
| Muốn công thức ngắn gọn, dễ đọc | Trung bình | Phức tạp | Rất ngắn (cú pháp đơn giản) |
Kết luận: VLOOKUP vẫn rất hữu ích cho các trường hợp đơn giản, đặc biệt khi cột lookup là cột đầu tiên và bạn chỉ cần tra cứu một chiều. Tuy nhiên, trong các tình huống phức tạp hơn, INDEX-MATCH hoặc XLOOKUP (nếu có) sẽ linh hoạt hơn.
8. Thực Hành: 5 Bài Tập Thực Tế Với VLOOKUP
Bài 1: Kết Hợp Hai Bảng Khách Hàng và Đơn Hàng
- Bảng Khách Hàng (Sheet1):
A: Mã KH,B: Tên KH,C: Địa chỉ. - Bảng Đơn Hàng (Sheet2):
A: Mã ĐH,B: Mã KH,C: Ngày,D: Tổng tiền.
Mục tiêu: Thêm cột “Tên KH” vào Sheet2 dựa trên “Mã KH”.
=VLOOKUP(B2, Sheet1!$A$2:$C$100, 2, FALSE)
Bài 2: Tra Cứu Mức Chiết Khấu Dựa Trên Doanh Thu
- Bảng Chiết Khấu:
A: Doanh thu tối thiểu,B: % Chiết khấu. - Đặt
range_lookup = TRUE, sắp xếp tăng dần cột doanh thu.
=VLOOKUP(E2, $A$2:$B$10, 2, TRUE)
Bài 3: Kiểm Tra Trùng Lặp Mã Sản Phẩm
- Dùng VLOOKUP để kiểm tra xem một mã sản phẩm đã tồn tại trong danh sách chưa.
=IF(ISNA(VLOOKUP(G2, $A$2:$A$500, 1, FALSE)), "Mới", "Đã tồn tại")
Bài 4: Tạo Bảng Tổng Hợp Doanh Thu Theo Nhân Viên
- Bảng Giao Dịch:
A: Mã NV,B: Doanh thu. - Bảng Nhân Viên:
A: Mã NV,B: Tên NV.
Sử dụng SUMIF kết hợp VLOOKUP để đưa tên nhân viên vào bảng tổng hợp.
=VLOOKUP(A2, NhânViên!$A$2:$B$100, 2, FALSE) // Tên NV
=SUMIF(GiaoDich!$A$2:$A$500, A2, GiaoDich!$B$2:$B$500) // Doanh thu
Bài 5: Định Giá Sản Phẩm Dựa Trên Đơn Vị Đo
- Bảng Giá:
A: Đơn vị,B: Giá. - Trong bảng Đơn hàng, cột “Đơn vị” là
E, cột “Giá” cần tự động điền.
=VLOOKUP(E2, Giá!$A$2:$B$50, 2, FALSE)
9. Mẹo Tối Ưu Hóa Hiệu Suất VLOOKUP
- Giảm phạm vi
table_array: Sử dụng chỉ những cột cần thiết, không toàn bộ sheet. - Sử dụng Table hoặc Named Range: Giúp công thức nhanh hơn và dễ bảo trì.
- Tránh VLOOKUP lồng nhau: Nếu có nhiều VLOOKUP trong một ô, cân nhắc dùng XLOOKUP hoặc INDEX-MATCH để giảm độ phức tạp.
- Sắp xếp dữ liệu khi dùng
TRUE: Giúp Excel thực hiện tìm kiếm nhị phân nhanh hơn. - Tắt tính năng “Automatic Calculation” khi làm việc với tập dữ liệu rất lớn, rồi bật lại sau khi hoàn thành.
- Sử dụng Power Query: Khi cần thực hiện nhiều phép nối (join) giữa bảng, Power Query sẽ nhanh hơn VLOOKUP truyền thống.
10. Kết Luận
VLOOKUP là một trong những công cụ không thể thiếu trong Excel để tra cứu, kết nối và tự động hoá dữ liệu. Từ những công thức đơn giản cho đến các trường hợp phức tạp, việc hiểu rõ cú pháp, các tùy chọn và cách kết hợp VLOOKUP với các hàm khác sẽ giúp bạn:
- Tiết kiệm thời gian đáng kể trong công việc hàng ngày.
- Giảm thiểu lỗi do nhập liệu thủ công.
- Tăng tính linh hoạt trong việc xử lý dữ liệu đa dạng.
Mặc dù Excel đã ra mắt các hàm mới như XLOOKUP và FILTER, VLOOKUP vẫn giữ vai trò quan trọng, đặc biệt trong môi trường doanh nghiệp còn sử dụng các phiên bản Excel cũ hơn. Hy vọng qua bài viết này, bạn đã nắm vững cách dùng VLOOKUP từ cơ bản tới nâng cao, sẵn sàng áp dụng vào thực tiễn và trở thành “siêu nhân” Excel trong công việc.
Chúc bạn thành công!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
