VLOOKUP là một hàm tìm kiếm và tham chiếu dữ liệu rất quan trọng trong Excel và được sử
dụng trong tính toán ở nhiều trường hợp. Để cho bạn đọc có thể dễ dàng nắm bắt được ý nghĩa và tình huống sử dụng của hàm này, chúng ta xem xét ví dụ sau trước khi xem giải thích chi tiết về hàm.
Ví dụ:
Giả sử cuối học kỳ, chúng ta có một danh sách điểm tổng kết của toàn bộ học sinh của lớp học và công việc của chúng ta là cần tính xem những học sinh được học bổng sẽ nhận được mức học bổng như thế nào.
Khi đó chúng ta có bảng dữ liệu như sau:
Trong bài toán này, có 3 mức học bổng như sau: - Mức khá: 180.000 đ.
- Mức giỏi: 240.000 đ. - Mức xuất sắc: 360.000 đ.
Trong bảng dữ liệu này, với mỗi học sinh, ta có thể tính ra được xem học sinh đó được xếp loại gì, dựa vào điểm trung bình của học sinh đó. Từ xếp loại của học sinh, dựa vào bảng quy định mức học bổng (cũng được trình bày trong bảng tính), ta có thể tính ra được học sinh đó được học bổng bao nhiêu hoặc có được học bổng hay không.
Các đơn giản nhất để tính ra mức học bổng cho từng học sinh là xem xếp loại, sau đó nhìn xuống bảng mức học bổng, và gõ mức học bổng tương ứng với xếp loại vào ô học bổng. Tuy nhiên, cách làm này có thể gọi là cách làm thủ công, không hiệu quả, đặc biệt là đối với 1 danh sách dài các học sinh, đồng thời dễ gây ra nhầm lẫn.
Để giải quyết tình huống này, Excel cung cấp cho chúng ta 1 hàm tham chiếu dữ liệu rất hiệu quả, đó là hàm VLOOKUP. Nhiệm vụ của hàm này là với mỗi giá trị của ô xếp loại, tham chiếu xuống bảng các mức học bổng để tìm xem mức học bổng tương ứng với xếp loại đó là bao nhiêu. Ví dụ, ô xếp loại là Giỏi, hàm VLOOKUP sẽ tham chiếu xuống bảng Các mức học bổng để
tìm xem với xếp loại là Giỏi, thì mức học bổng sẽ là bao nhiêu. Kết quả trả về chính là kết quả của hàm VLOOKUP.
Cú pháp của hàm VLOOKUP như sau:
VLOOKUP(<giá trị>,<bảng tìm kiếm>,<cột tìm kiếm>,<cách tìm kiếm> Trong đó, ý nghĩa của các tham số như sau:
- <giá trị>: Là giá trị mà chúng ta dùng để tìm kiếm trong <bảng tìm kiếm>. Đây có thể là một giá trị cụ thể, một công thức, .v.v, nhưng thông thường nó là một ô trong bảng tính. Giá trị này sẽđược so sánh với cột đầu tiên trong <bảng tìm kiếm>. Trong ví dụ trên, <giá trị> chính là giá trị của 1 ô trong cột “Xếp hạng” mà chúng ta dùng để tìm kiếm trong
bảng “Các mức học bổng”. Ở bảng “Các mức học bổng” thì cột “Xếp hạng” của bảng này
được đặt là cột đầu tiên.
- <bảng tìm kiếm>: Là một danh sách các ô trong một bảng tính. Ở ví dụ trên, <bảng tìm kiếm> chính là bảng “Các mức học bổng” mà chúng ta thực hiện việc tìm kiếm mức học bổng cho từng học sinh.
Lưu ý: Khi định nghĩa bảng tìm kiếm, chúng ta cần chỉ ra tọa độ tuyệt đối của các ô. Để làm
được điều này, chúng ta có thể thực hiện như sau:
+) Gõ trực tiếp vào địa chỉ của ô: ví dụ như $B$12 là địa chỉ tuyệt đối của ô B12. +) Dùng chuột lựa chọn vùng mà bạn định nghĩa bảng, ở ví dụ trên là vùng B12:C14. Sau đó bấm phím F4. Excel sẽ giúp ta định nghĩa địa chỉ tuyệt đối của B12:C14 thành $B$12:$C$14.
- <cột>: Là một số xác định vị trí của cột trong <bảng tìm kiếm> mà chúng ta cần lấy ra. Vị
trí này được tính là thứ tự của cột cần lấy so với thứ tự của cột so sánh giá trị (thường là cột đầu tiên). Hàm VLOOKUP sẽ so sánh <giá trị> với các giá trị trong cột đầu tiên của bảng tìm kiếm. Nếu khớp ở vị trí nào, giá trị của cột thứ <cột> trong bảng tìm kiếm tại vị
trí đó sẽđược lấy ra. Ở ví dụ trên, chúng ta thấy cột so sánh giá trị trong bảng “Các mức học bổng là cột số 1. Cột cần lấy giá trị là cột mức học bổng (số 2), do đó <cột> = 2. - <cách tìm>: Excel định nghĩa 2 cách tìm kiếm. Ngầm định (nếu người dùng không đưa
vào) thì cách tìm sẽ là 1. Giá trị của <cách tìm> có thể là 0 hoặc 1. Trong đó ý nghĩa của từng giá trị như sau:
+) Nếu cách tìm là 1: Các giá trị trong <bảng tìm kiếm> phải được sắp xếp theo thứ
tự tăng dần của cột so sánh (thường là cột đầu tiên). Nếu giá trị tìm kiếm nhỏ hơn phần tử đầu tiên trong <bảng tìm kiếm> thì giá trị trả về sẽ là #N/A. Nếu giá trị tìm kiếm lớn hơn phần tử cuối cùng thì giá trị trả về coi như là giá trị cuối cùng trong danh sách. Ngược lại, nếu giá trị tìm kiếm được tìm thấy ở một phần tử trong danh sách thì giá trị trả về sẽ là giá trị của ô tìm kiếm nằm cùng hàng với phần tử tìm kiếm.
+) Nếu cách tìm là 0: Các giá trị trong <bảng tìm kiếm> sẽ không cần phải sắp xếp. Khi đó, nếu giá trị tìm kiếm không đúng với bất kỳ giá trị nào trong bảng thì Excel sẽ trả về
giá trị lỗi là #N/A.
Lưu ý: Cũng giống như các hàm khác, hàm này không phân biệt chữ hoa, chữ thường khi so sánh các giá trị có kiểu chữ. Ví dụ “Giỏi” cũng được coi là bằng với “giỏi” và “GIỎI”.
Quay lại ví dụ trên, để tính được học bổng cho từng học sinh, ở cột “Học bổng”, chúng ta tiến hành lập công thức cho từng ô như sau:
Xét ô đầu tiên của cột học bổng (E2). Lập công thức cho ô này như sau: =VLOOKUP(D2,$B$12:$C$14,2,0).
Ý nghĩa của công thức như sau: Với giá trị ô D2, hãy tìm kiếm trong bảng tìm kiếm được giới hạn bởi vùng từ ô B12 đến ô C14 (kí hiệu bằng $B$12:$C$14), và so sánh giá trị ô D2 với các giá trị trong cột thứ nhất của bảng tìm kiếm, và lấy ra giá trị của cột thứ 2 (cột mức học bổng) của bảng ở hàng tìm được.
Sau khi lập được công thức này cho ô E1, chúng ta sẽ nhận được giá trị 180,000. Bởi vì giá trị ô D2 là “Khá”, Excel sẽ tìm kiếm trong cột thứ nhất của bảng mức học bổng, thấy hàng thứ
nhất có giá trị là “Khá”, bằng với giá trị ô D2. Khi đó, giá trị của cột thứ 2 trong hàng thứ nhất sẽ được lấy làm giá trị trả về cho hàm VLOOKUP, và đó là giá trị 180,000 đ.
Sao chép công thức này cho các ô còn lại từ E3 đến E8, chúng ta được bảng kết quả như sau:
Trong bảng dữ liệu này, chúng ta thấy kết quả học bổng của những học sinh có xếp hạng không nằm trong các mức học bổng định nghĩa ở bảng phía dưới sẽ là: #N/A.
Để tránh gặp phải những giá trị này, chúng ta có thể kết hợp với hàm IF để làm cho kết quả
“đẹp” hơn bằng cách trả về giá trị 0 (không đồng) cho những học sinh không đạt được học bổng mà không phải đưa thêm vào danh sách các mức học bổng giá trị 0 cho các học sinh không đạt học bổng. Cụ thể chúng ta sửa lại công thức như sau:
=IF(ISERROR((VLOOKUP(D2,$B$12:$C$14,2,0))),0,(VLOOKUP(D2,$B$12:$C$14,2,0)))
Ở đây chúng ta để ý một hàm là ISERROR(<biểu thức>). Hàm này sẽ trả về giá trị “đúng” nếu <biểu thức> là “lỗi” và ngược lại. Như vậy, công thức trên có thểđược hiểu như sau:
“Nếu việc thực hiện hàm VLOOKUP mà lỗi (trả về giá trị #N/A) thì tôi thay bằng giá trị 0. Ngược lại, tức là VLOOKUP thực hiện đúng thì tôi lấy đúng giá trị VLOOKUP.”
Khi đó, chúng ta có một bảng dữ liệu mới “đẹp” hơn bảng ban đầu mà không cần phải thêm dữ liệu vào bảng tìm kiếm “Các mức học bổng” như sau:
Trên đây là một ví dụđơn giản về hàm VLOOKUP. Trong thực tế, có rất nhiều bài toán quản lý liên quan đến việc phải tham chiếu, tìm kiếm dữu liệu trên nhiều bảng khác nhau, ví dụ
như các bài toán về tính cước điện thoại theo tỉnh, bài toán tính giá tiền của mặt hàng bán ra v.v. Người dùng hoàn toàn có thể sử dụng hàm VLOOKUP để giải được các bài toán này. Các ví dụ
này chúng ta sẽ xem xét ở phần bài tập tổng hợp.