Chuyển đến nội dung chính

VLOOKUP() Excel: Là gì và cách sử dụng

Tìm dữ liệu giữa các bảng. Tra cứu giá trị nhanh chóng. Sắp xếp thông tin của bạn mà không cần tìm thủ công.
Đã cập nhật 5 thg 6, 2026  · 7 phút đọc

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ừ 1 cho cột ngoài cùng bên trái) trong table_array dùng để trả về giá trị.

  • [range_lookup]: Tùy chọn. Nhập FALSE để tìm khớp chính xác (thường là điều bạn muốn), hoặc TRUE để 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: 

Ví dụ cơ bản về VLOOKUP trong Excel

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:B4 là vùng dữ liệu.

  • 2 cho Excel biết trả về giá trị từ cột thứ hai, tức là cột Giá.

  • FALSE nghĩ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 trong Excel với tham chiếu ô

=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 FALSE cho 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 TRUE cho 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ùng TRUE.

Hãy xem một ví dụ về khớp gần đúng:

Giả sử bạn có bảng thuế suất sau:

VLOOKUP trong Excel với khớp gần đúng

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ủa table_array và 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_num có 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()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ủa VLOOKUP() 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()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/A mà không cần dùng IFERROR() 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_array bằ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ùng TRUE cho range_lookup hoặ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:

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 ExcelCá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.


Josef Waples's photo
Author
Josef Waples

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! 

Chủ đề

Học Excel với DataCamp

Courses

Introduction to Excel

4 giờ
237.6K
Master the Excel basics and learn to use this spreadsheet tool to conduct impactful analysis.
Xem chi tiếtRight Arrow
Bắt đầu khóa học
Xem thêmRight Arrow