Courses
Có lẽ bạn đã nghe về VLOOKUP(). Đây là một trong những hàm nổi tiếng nhất trong Excel. Và khi bạn hiểu cách nó hoạt động, bạn sẽ thích dùng nó vì nó giải quyết một vấn đề vốn dĩ rắc rối và tốn thời gian. VLOOKUP thực sự là cách Microsoft trả lại cho bạn rất nhiều thời gian.
Trong bài viết này, tôi sẽ giải mã cách VLOOKUP() hoạt động và hướng dẫn bạn qua những cách dùng phổ biến nhất. Bạn cũng có thể quay lại bài này sau nếu quên một đối số nào đó.
VLOOKUP() làm gì?
Giờ thì cùng làm rõ VLOOKUP() thực sự làm gì.
Về bản chất, VLOOKUP() tìm một giá trị trong cột đầu tiên của một bảng (hoặc một vùng ô) và trả về giá trị từ cột khác trên cùng một hàng.
Hãy nghĩ như thế này: "Tìm mục này trong danh sách của tôi và đưa cho tôi một thứ khác trên cùng hàng."
Có bốn đối số quan trọng mà bạn dùng mỗi lần:
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
-
lookup_value: Giá trị bạn muốn tìm. -
table_array: Vùng ô chứa dữ liệu của bạn (bao gồm cả cột để tìm và cột/các cột để trả về). -
col_index_num: Số thứ tự cột (bắt đầu từ1cho cột ngoài cùng bên trái) trongtable_arraydùng để trả về giá trị. -
[range_lookup]: Tùy chọn. NhậpFALSEđể tìm khớp chính xác (thường là điều bạn muốn), hoặcTRUEđể tìm khớp gần đúng.
VLOOKUP() là một hàm mà bạn cần hiểu các đối số của nó. Không phải hàm nào cũng vậy nhưng VLOOKUP() thì đúng là như thế.
Ví dụ cơ bản về VLOOKUP() trong Excel
Hãy cho VLOOKUP() hoạt động. Giả sử bạn có một bảng đơn giản gồm sản phẩm và giá như sau:

Giả sử bạn muốn biết giá của chuối. Bạn có thể dùng:
=VLOOKUP("Banana", A2:B4, 2, FALSE)
-
"Banana"là giá trị bạn đang tìm. -
A2:B4là vùng dữ liệu. -
2cho Excel biết trả về giá trị từ cột thứ hai, tức là cột Giá. -
FALSEnghĩa là bạn muốn khớp chính xác. (Sẽ nói thêm về đối số này sau. Đây là phần dễ gây nhầm lẫn nhất.)
Công thức này sẽ trả về $0.30.
Việc mã hóa cứng giá trị không phải lúc nào cũng lý tưởng, dẫn đến điểm tiếp theo:
VLOOKUP() với tham chiếu ô thay vì mã hóa cứng
Trong ví dụ trước, tôi đã mã hóa cứng giá trị cần tìm. Trong thực tế, bạn thường sẽ muốn tham chiếu đến một ô. Điều này giúp công thức linh hoạt và có thể tái sử dụng. Ví dụ, nếu bạn nhập "Orange" vào ô D2, bạn có thể dùng:

=VLOOKUP(D2, A2:B4, 2, FALSE)
Giờ đây, bất cứ khi nào bạn thay đổi giá trị trong D2, công thức sẽ lấy giá tương ứng và bạn sẽ thấy rằng không cần chỉnh sửa chính công thức.
VLOOKUP() với khớp chính xác và khớp gần đúng
Có thể bạn đang thắc mắc về đối số thứ tư, [range_lookup]. Đôi khi nó không quan trọng nhưng những lúc khác lại ảnh hưởng lớn đến kết quả. Kinh nghiệm là hầu hết thời gian, bạn sẽ muốn FALSE để khớp chính xác.
-
Dùng
FALSEcho những thứ như tên, ID hoặc mã sản phẩm khi bạn cần khớp hoàn toàn chính xác. -
Dùng
TRUEcho các khoảng (như bậc thuế hoặc thang điểm) khi bạn muốn giá trị gần nhất mà không vượt quá. Chỉ cần nhớ (và điều này cũng quan trọng): cột dò phải được sắp xếp tăng dần khi dùngTRUE.
Hãy xem một ví dụ về khớp gần đúng:
Giả sử bạn có bảng thuế suất sau:

Nếu thu nhập của bạn là $15,000:
=VLOOKUP(15000, A2:B4, 2, TRUE)
Excel sẽ tìm giá trị gần nhất nhỏ hơn hoặc bằng 15000 (tức là 10000) và trả về 15%.
Nhưng một lần nữa, với hầu hết các phép dò, hãy dùng FALSE.
Những lỗi thường gặp và giới hạn
Giống như mọi thứ, VLOOKUP() có vài giới hạn để bạn không bị vấp sau này. Dưới đây là một số điều cần chú ý:
-
Chỉ tìm từ trái sang phải. Đây là giới hạn lớn nhất.
VLOOKUP()luôn tìm trong cột đầu tiên củatable_arrayvà trả dữ liệu từ các cột bên phải. Nếu bạn cần dò sang bên trái, bạn sẽ cần cách khác. -
Số thứ tự cột là tĩnh. Nếu bạn chèn hoặc xóa cột trong bảng,
col_index_numcó thể trỏ nhầm cột. Đôi khi nếu hỏng, bạn sẽ thấy cả cột lỗi#N/A, nhưng những lúc khác vấn đề khó nhận ra hơn. -
Có thể chậm với bộ dữ liệu lớn. Với bảng rất lớn, có thể có khác biệt hiệu năng rõ rệt. Nếu bạn đã tìm được giá trị cần và không cần dò động nữa, bạn có thể Copy > Paste Special để giảm tải cho sổ làm việc.
Nếu gặp các vấn đề này, hãy cân nhắc các lựa chọn như INDEX()+MATCH(), hoặc hàm mới hơn XLOOKUP() (nếu có trong phiên bản Excel của bạn). (Tôi sẽ giúp bạn phân biệt các hàm này ở phần bên dưới.)
Làm cho VLOOKUP() linh hoạt hơn
Khi bạn đã thoải mái với những điều cơ bản, hãy làm cho công thức VLOOKUP() linh hoạt và dễ quản lý hơn. Một mẹo hay là dùng vùng được đặt tên. Ví dụ, chọn A2:B4, gõ "ProductTable" vào phần gọi là Name Box, và giờ công thức của bạn có thể tham chiếu tên đó:
=VLOOKUP(D2, ProductTable, 2, FALSE)
Điều này giúp công thức dễ đọc và bảo trì hơn nhiều, đặc biệt khi bảng của bạn thay đổi vị trí.
Xử lý lỗi VLOOKUP() gọn gàng
Đôi khi VLOOKUP() không tìm được giá trị bạn đang tìm, dẫn đến lỗi #N/A. Để làm gọn và thân thiện hơn với người dùng, bạn có thể dùng IFERROR() để bắt lỗi đó:
=IFERROR(VLOOKUP(D2, ProductTable, 2, FALSE), "Not found")
Như vậy, các giá trị thiếu sẽ hiển thị là "Not found" thay vì thông báo lỗi, vốn trông khá khó chịu.
VLOOKUP() so với INDEX()/MATCH() và XLOOKUP()
Tôi đã bắt đầu nhắc tới các hàm thay thế trước đó.
INDEX() và MATCH() thường được khuyên dùng cùng nhau, và đây là lý do:
-
INDEX()/MATCH()cho phép bạn dò theo mọi hướng, không chỉ sang phải, khắc phục giới hạn lớn củaVLOOKUP()mà tôi đã đề cập. -
Cột dò không cần phải là cột đầu tiên trong vùng.
-
Việc chèn hoặc xóa cột sẽ không làm hỏng công thức của bạn.
Và đây là cách XLOOKUP() so với VLOOKUP():
-
XLOOKUP()thay thế cảVLOOKUP()vàINDEX()/MATCH()bằng cách kết hợp chức năng của chúng vào một công thức trực quan hơn. -
Bạn có thể dò sang trái, phải, lên hoặc xuống.
-
Không yêu cầu cột dò ở vị trí cố định.
-
Bạn có thể định nghĩa giá trị dự phòng nếu không tìm thấy gì, tránh lỗi
#N/Amà không cần dùngIFERROR()như tôi đã chỉ trước đó.
Một vài mẹo và lối tắt
Tiếp nối những gì đã trình bày, đây là vài mẹo hữu ích cho VLOOKUP():
-
Tham chiếu tuyệt đối: Khi sao chép công thức xuống dưới, hãy khóa
table_arraybằng dấu$(ví dụ,$A$2:$B$100) để giữ nguyên vùng. -
Sắp xếp: Với khớp gần đúng (dùng
TRUE), đảm bảo cột dò được sắp xếp tăng dần. -
Khớp một phần:
VLOOKUP()không trực tiếp hỗ trợ ký tự đại diện cho khớp một phần trừ khi bạn dùngTRUEchorange_lookuphoặc áp dụng các cách lách.
Kết luận
Chúng tôi có nhiều hướng dẫn hay về các trường hợp dùng VLOOKUP() cụ thể. Đọc bộ sưu tập:
- VLOOKUP() từ trang tính khác: Hướng dẫn trong Excel
- Cách thực hiện VLOOKUP() với nhiều tiêu chí
- Cách kết hợp VLOOKUP() với IF() trong Excel
Sau đó, để có lộ trình học tập có cấu trúc, giúp đặt mọi thứ vào bối cảnh tốt hơn và thật sự nâng cao kỹ năng, hãy đăng ký các khóa Phân tích Dữ liệu trong Excel và Các Hàm Excel Nâng cao của chúng tôi. Đây thực sự là cách tốt nhất để bạn không ngừng tiến bộ với Excel.

Tôi là một cây bút và biên tập viên về khoa học dữ liệu, đã có bài đóng góp cho các nghiên cứu đăng trên tạp chí khoa học. Tôi đặc biệt quan tâm đến đại số tuyến tính, thống kê, R và các chủ đề tương tự. Tôi cũng chơi cờ vua khá thường xuyên!