Mẹo
Hãy thử sử dụng hàm XLOOKUP mới, phiên bản cải tiến của hàm VLOOKUP hoạt động theo mọi hướng và trả về kết quả khớp chính xác theo mặc định, giúp sử dụng dễ dàng và thuận tiện hơn so với phiên bản tiền nhiệm.
Hãy dùng VLOOKUP khi bạn cần tìm thông tin trong một bảng hay một phạm vi theo hàng. Ví dụ: tra cứu giá cho một linh kiện ô tô theo số linh kiện hoặc tìm tên nhân viên dựa trên ID nhân viên của họ.
Ở dạng đơn giản nhất, hàm VLOOKUP cho biết:
=VLOOKUP(Những gì bạn muốn tra cứu, nơi bạn muốn tìm, số cột trong dải ô chứa giá trị cần trả về, trả về kết quả khớp Tương đối hoặc Chính xác – được biểu thị là 1/TRUE hoặc 0/FALSE).
Mẹo
- Bí quyết để sử dụng hàm VLOOKUP là phải sắp xếp dữ liệu của bạn sao cho giá trị mà bạn muốn tra cứu (Trái cây) nằm ở bên trái giá trị trả về (số tiền) mà bạn muốn tìm.
- Nếu bạn là người đăng ký Microsoft Copilot, Copilot có thể giúp bạn chèn và sử dụng các hàm VLookup hoặc XLookup dễ dàng hơn. Xem Nhận thông tin chuyên sâu về dữ liệu với Copilot trong Excel.
Chi tiết kỹ thuật
Sử dụng hàm VLOOKUP để tra cứu giá trị trong bảng.
Cú pháp
VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])
Ví dụ:
- =VLOOKUP(A2,A10:C20,2,TRUE)
- =VLOOKUP("Fontana",B2:E7,2,FALSE)
- =VLOOKUP(A2,'Chi tiết Khách hàng'! A:F,3,FALSE)
| Tên đối số | Mô tả |
|---|---|
| lookup_value (bắt buộc) | Giá trị bạn muốn tra cứu. Giá trị bạn muốn tra cứu phải nằm trong cột đầu tiên của phạm vi các ô do bạn chỉ định trong đối số table_array . Ví dụ, nếu mảng bảng trải dài các ô B2:D7, thì lookup_value của bạn phải nằm ở cột B. Lookup_value có thể là một giá trị hoặc tham chiếu đến một ô. |
| table_array (bắt buộc) | Phạm vi các ô mà VLOOKUP sẽ tìm kiếm cho lookup_value và giá trị trả về. Bạn có thể dùng phạm vi hoặc bảng đã đặt tên và bạn có thể dùng tên trong đối số thay cho tham chiếu ô. Cột đầu tiên trong phạm vi ô phải chứa lookup_value. Phạm vi ô cũng cần bao gồm giá trị trả về mà bạn muốn tìm. |
| col_index_num (bắt buộc) | Số cột (bắt đầu bằng 1 cho cột ngoài cùng bên trái của table_array) chứa giá trị trả về. |
| range_lookup(tùy chọn) | Một giá trị lô-gic sẽ xác định xem bạn muốn hàm VLOOKUP tìm kết quả khớp tương đối hay kết quả khớp chính xác:
|
Cách bắt đầu
Có bốn phần thông tin mà bạn sẽ cần sử dụng để xây dựng cú pháp cho hàm VLOOKUP:
- Giá trị bạn muốn tra cứu, còn được gọi là giá trị tra cứu.
- Dải ô chứa giá trị tra cứu. Hãy nhớ rằng giá trị tra cứu phải luôn nằm ở cột đầu tiên của dải ô để hàm VLOOKUP có thể hoạt động chính xác. Ví dụ: Nếu giá trị tra cứu của bạn nằm ở ô C2 thì dải ô của bạn sẽ bắt đầu ở C.
- Số cột chứa giá trị trả về trong dải ô. Ví dụ: Nếu bạn chỉ định B2:D11 làm dải ô thì bạn nên tính B là cột đầu tiên, C là cột thứ hai và cứ tiếp tục như vậy.
- Hay bạn có thể chỉ định TRUE nếu bạn muốn có một kết quả khớp tương đối hoặc FALSE nếu bạn muốn có một kết quả khớp chính xác ở giá trị trả về. Nếu bạn không chỉ định bất cứ giá trị nào thì giá trị mặc định sẽ luôn là TRUE hay kết quả khớp tương đối.
Giờ thì hãy tập hợp tất cả mục trên lại với nhau, như sau:
=VLOOKUP(giá trị tra cứu, dải ô chứa giá trị tra cứu, số cột trong dải ô chứa giá trị trả về, Kết quả khớp tương đối (TRUE) hoặc Kết quả khớp chính xác (FALSE)).
Ví dụ
Dưới đây là một số ví dụ về hàm VLOOKUP:
Ví dụ 1
Ví dụ 2
Ví dụ 3
Ví dụ 4
Ví dụ 5
Các vấn đề Chung
| Sự cố | Đã xảy ra lỗi gì |
|---|---|
| Trả về giá trị sai | Nếu range_lookup là TRUE hoặc bỏ trống, cột đầu tiên cần được sắp xếp theo bảng chữ cái hoặc số. Nếu cột đầu tiên không được sắp xếp, giá trị trả về có thể là giá trị mà bạn không mong đợi. Hoặc sắp xếp cột đầu tiên hoặc là bạn sẽ dùng FALSE cho giá trị khớp chính xác. |
| Lỗi #N/A trong ô |
|
| Lỗi #REF! trong ô | Nếu col_index_num lớn hơn số cột trong table-array, bạn sẽ nhận được giá trị #REF! . Để biết thêm thông tin về cách giải quyết các lỗi #REF! trong VLOOKUP, hãy xem Cách sửa lỗi #REF!. |
| Lỗi #VALUE! trong ô | Nếu table_array nhỏ hơn 1, bạn sẽ nhận được #VALUE! . Để biết thêm thông tin về cách giải quyết các lỗi #VALUE! trong hàm VLOOKUP, hãy xem Cách sửa lỗi #VALUE! trong hàm VLOOKUP. |
| #NAME? Trong ô | Các #NAME? thường có nghĩa là công thức thiếu dấu ngoặc kép. Để tìm tên của một người, hãy bảo đảm bạn dùng dấu ngoặc kép xung quanh tên trong công thức. Ví dụ, hãy nhập tên là "Fontana" trong =VLOOKUP("Fontana",B2:E7,2,FALSE). Để biết thêm thông tin, hãy xem mục Cách sửa lỗi #NAME!. |
| Lỗi #SPILL! Trong ô | Lỗi #SPILL! cụ thể này thường có nghĩa là công thức của bạn dựa vào giao điểm ẩn cho giá trị tra cứu và sử dụng toàn bộ cột làm tham chiếu. Ví dụ, =VLOOKUP( A:A,A:C,2,FALSE). Bạn có thể giải quyết sự cố này bằng cách neo tham chiếu tra cứu với toán tử @ như thế này: =VLOOKUP(@A:A,A:C,2,FALSE). Ngoài ra, bạn có thể sử dụng phương pháp VLOOKUP truyền thống và tham chiếu đến một ô duy nhất thay vì toàn cột: =VLOOKUP(A2,A:C,2,FALSE). |
Những cách thực hành tốt nhất
| Thực hiện thao tác này | Tại sao |
|---|---|
| Dùng tham chiếu tuyệt đối cho range_lookup | Bằng cách dùng các tham chiếu tuyệt đối sẽ cho phép bạn điền từ trên xuống một công thức để nó luôn xem cùng phạm vi tra cứu chính xác. Tìm hiểu cách dùng tham chiếu ô tuyệt đối. |
| Không lưu trữ giá trị số hoặc ngày dưới dạng văn bản. | Khi tìm kiếm các giá trị số hoặc ngày, hãy bảo đảm dữ liệu trong cột đầu tiên của table_array không được lưu trữ như là các giá trị văn bản. Trong trường hợp này, VLOOKUP có thể trả về một giá trị không đúng hoặc không được mong đợi. |
| Sắp xếp cột đầu tiên | Sắp xếp cột đầu tiên của table_array trước khi dùng VLOOKUP khi range_lookup là TRUE. |
| Dùng ký tự đại diện | Nếu range_lookup là FALSE và lookup_value là văn bản, bạn có thể sử dụng các ký tự đại diện—dấu hỏi (?) và dấu sao (*)—trong lookup_value. Một dấu chấm hỏi khớp với một ký tự đơn lẻ bất kỳ. Một dấu sao khớp với chuỗi ký tự bất kỳ. Nếu bạn muốn tìm dấu chấm hỏi hay dấu sao thực sự, hãy nhập một dấu sóng (~) trước ký tự đó. Ví dụ, =VLOOKUP("Fontan?",B2:E7,2,FALSE) sẽ tìm mọi trường hợp có Fontana với chữ cái cuối cùng có thể thay đổi. |
| Hãy bảo đảm dữ liệu của bạn không chứa các ký tự không đúng. | Khi tìm kiếm giá trị văn bản trong cột đầu tiên, hãy đảm bảo dữ liệu trong cột đầu tiên không có khoảng trắng ở đầu, khoảng trắng ở cuối, sử dụng không thống nhất dấu ngoặc thẳng (' hoặc ") và cong (' hoặc "), hoặc ký tự không in ra. Trong những trường hợp này, VLOOKUP có thể trả về giá trị không mong muốn. Để có được kết quả chính xác, hãy thử sử dụng hàm CLEAN hoặc hàm TRIM để loại bỏ khoảng trắng ở cuối các giá trị ô trong bảng. |
Bạn cần thêm trợ giúp?
Bạn luôn có thể hỏi chuyên gia trong Cộng đồng kỹ thuật Excel hoặc nhận hỗ trợ trong Cộng đồng.