Trong thực tế, dữ liệu thường nằm ở nhiều bảng khác nhau.
Ví dụ:
Bảng nhân viên
| Mã NV | Họ tên | Mã phòng |
|---|---|---|
| NV001 | Nguyễn An | KT |
| NV002 | Trần Bình | KD |
| NV003 | Lê Cường | IT |
Bảng phòng ban
| Mã phòng | Tên phòng |
|---|---|
| KT | Kế toán |
| KD | Kinh doanh |
| IT | Công nghệ thông tin |
Thay vì nhập lại tên phòng cho từng nhân viên, Excel có thể tự động tra cứu từ bảng khác.
Đó chính là nhiệm vụ của các hàm:
VLOOKUPHLOOKUPXLOOKUPINDEXMATCH
56. Hàm VLOOKUP
VLOOKUP là một trong những hàm tra cứu nổi tiếng nhất của Excel.
VLOOKUP có nghĩa là:
Vertical Lookup — tra cứu theo chiều dọc.
Cú pháp:
=VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup])Trong đó:
lookup_value— giá trị cần tìm.table_array— bảng cần tra cứu.col_index_num— số thứ tự cột cần lấy kết quả.range_lookup— kiểu tìm kiếm.
Ví dụ cơ bản
Có bảng:
| Mã SP | Sản phẩm | Đơn giá |
|---|---|---|
| SP001 | Laptop | 15000000 |
| SP002 | Máy in | 5000000 |
| SP003 | Màn hình | 4500000 |
Ở ô E2 có:
SP002Muốn lấy tên sản phẩm:
=VLOOKUP(E2,A2:C4,2,FALSE)Kết quả:
Máy inMuốn lấy đơn giá:
=VLOOKUP(E2,A2:C4,3,FALSE)Kết quả:
5000000FALSE và TRUE trong VLOOKUP
Đây là phần rất quan trọng.
FALSE — tìm chính xác
=VLOOKUP(E2,A2:C4,2,FALSE)Excel yêu cầu tìm đúng giá trị.
Ví dụ:
SP002phải tìm đúng:
SP002Nếu không tìm thấy → trả về lỗi #N/A.
TRUE — tìm gần đúng
=VLOOKUP(E2,A2:C4,2,TRUE)Dùng khi bảng được sắp xếp và muốn tìm giá trị gần đúng.
Ví dụ thường gặp:
Xếp loại điểm.
Tính thuế.
Tính chiết khấu.
Xác định mức thưởng.
Lỗi thường gặp với VLOOKUP
Ví dụ:
=VLOOKUP(E2,A2:C4,4,FALSE)nhưng bảng chỉ có 3 cột.
Excel sẽ báo lỗi vì cột thứ 4 không tồn tại.
Hạn chế của VLOOKUP
VLOOKUP có một hạn chế quan trọng:
Giá trị cần tra cứu phải nằm ở cột đầu tiên của vùng tra cứu.
Ví dụ:
| Họ tên | Mã NV | Phòng |
|---|---|---|
| Nguyễn An | NV001 | Kế toán |
Nếu muốn tìm theo Mã NV nhưng Mã NV nằm ở cột B và muốn lấy dữ liệu bên trái ở cột A thì VLOOKUP không thuận tiện.
Trong trường hợp này có thể dùng:
XLOOKUPINDEX + MATCH
57. Hàm HLOOKUP
HLOOKUP là:
Horizontal Lookup — tra cứu theo chiều ngang.
Cú pháp:
=HLOOKUP(lookup_value,table_array,row_index_num,[range_lookup])Khác với VLOOKUP:
VLOOKUP → tìm theo cột.
HLOOKUP → tìm theo hàng.
Ví dụ
Bảng:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | SP001 | SP002 | SP003 | SP004 |
| 2 | Laptop | Máy in | Màn hình | Chuột |
| 3 | 15000000 | 5000000 | 4500000 | 300000 |
Muốn tìm tên sản phẩm của SP003:
=HLOOKUP("SP003",A1:D3,2,FALSE)Kết quả:
Màn hìnhMuốn lấy giá:
=HLOOKUP("SP003",A1:D3,3,FALSE)Kết quả:
4500000VLOOKUP và HLOOKUP
| Hàm | Hướng tra cứu |
|---|---|
| VLOOKUP | Dọc |
| HLOOKUP | Ngang |
Trong các bảng dữ liệu hiện đại, VLOOKUP thường được sử dụng nhiều hơn HLOOKUP.
58. Hàm XLOOKUP
XLOOKUP là hàm tra cứu hiện đại, linh hoạt hơn VLOOKUP và HLOOKUP.
Cú pháp:
=XLOOKUP(lookup_value,lookup_array,return_array,[if_not_found])Trong đó:
lookup_value— giá trị cần tìm.lookup_array— vùng tìm kiếm.return_array— vùng trả kết quả.if_not_found— kết quả nếu không tìm thấy.
Ví dụ cơ bản
Bảng:
| Mã SP | Sản phẩm | Đơn giá |
|---|---|---|
| SP001 | Laptop | 15000000 |
| SP002 | Máy in | 5000000 |
| SP003 | Màn hình | 4500000 |
E2:
SP002Tìm tên sản phẩm:
=XLOOKUP(E2,A2:A4,B2:B4)Kết quả:
Máy inTìm đơn giá:
=XLOOKUP(E2,A2:A4,C2:C4)Kết quả:
5000000XLOOKUP có thể tìm sang trái
Đây là một ưu điểm lớn.
Bảng:
| Họ tên | Mã NV | Phòng |
|---|---|---|
| Nguyễn An | NV001 | Kế toán |
| Trần Bình | NV002 | Kinh doanh |
| Lê Cường | NV003 | IT |
Muốn nhập:
NV002và tìm họ tên:
=XLOOKUP(E2,B2:B4,A2:A4)Kết quả:
Trần BìnhKhông cần đảo vị trí các cột.
XLOOKUP xử lý dữ liệu không tìm thấy
Có thể chỉ định kết quả khi không tìm thấy:
=XLOOKUP(E2,A2:A4,B2:B4,"Không tìm thấy")Nếu E2 chứa:
SP999kết quả:
Không tìm thấyCách này giúp bảng tính dễ đọc hơn thay vì xuất hiện:
#N/A59. Hàm INDEX
INDEX dùng để trả về giá trị tại một vị trí cụ thể trong vùng dữ liệu.
Cú pháp:
=INDEX(array,row_num,[column_num])Ví dụ
Có bảng:
| A | B | C |
|---|---|---|
| Nguyễn An | Kế toán | 15000000 |
| Trần Bình | Nhân sự | 14000000 |
| Lê Cường | IT | 20000000 |
Công thức:
=INDEX(A2:C4,2,3)Có nghĩa:
Hàng thứ 2.
Cột thứ 3.
Kết quả:
14000000INDEX với một cột
Ví dụ:
=INDEX(A2:A4,2)Kết quả:
Trần BìnhINDEX rất mạnh khi kết hợp MATCH
Bản thân INDEX chỉ biết:
"Hãy lấy dữ liệu ở vị trí này."
Nhưng nếu không biết vị trí thì sao?
Ta dùng MATCH.
60. Hàm MATCH
MATCH dùng để tìm vị trí của một giá trị trong một vùng.
Cú pháp:
=MATCH(lookup_value,lookup_array,[match_type])Ví dụ:
=MATCH("Trần Bình",A2:A4,0)Kết quả:
2Vì Trần Bình nằm ở vị trí thứ 2 trong vùng:
A2:A4MATCH với mã sản phẩm
Có bảng:
| A |
|---|
| SP001 |
| SP002 |
| SP003 |
| SP004 |
Công thức:
=MATCH("SP003",A2:A5,0)Kết quả:
361. Kết hợp INDEX + MATCH
Đây là kỹ thuật tra cứu rất quan trọng.
Có bảng:
| Mã NV | Họ tên | Phòng ban | Lương |
|---|---|---|---|
| NV001 | Nguyễn An | Kế toán | 15000000 |
| NV002 | Trần Bình | Nhân sự | 14000000 |
| NV003 | Lê Cường | IT | 20000000 |
Muốn nhập mã:
NV002và tìm tên nhân viên.
Ta có:
=INDEX(B2:B4,MATCH(F2,A2:A4,0))Phân tích
Phần:
MATCH(F2,A2:A4,0)tìm vị trí của NV002.
Kết quả:
2Sau đó:
INDEX(B2:B4,2)trả về:
Trần BìnhINDEX + MATCH tìm dữ liệu bên trái
Đây là ưu điểm quan trọng.
Ví dụ:
| Họ tên | Mã NV |
|---|---|
| Nguyễn An | NV001 |
| Trần Bình | NV002 |
| Lê Cường | NV003 |
Muốn tìm tên dựa trên Mã NV:
=INDEX(A2:A4,MATCH(E2,B2:B4,0))Trong đó:
MATCHtìm mã NV ở cột B.INDEXtrả về tên ở cột A.
62. Tra cứu nhiều điều kiện
Trong thực tế, đôi khi một giá trị không đủ để xác định dữ liệu.
Ví dụ:
| Sản phẩm | Khu vực | Giá |
|---|---|---|
| Laptop | HCM | 15000000 |
| Laptop | Hà Nội | 15500000 |
| Máy in | HCM | 5000000 |
Nếu chỉ tìm:
Laptopthì có hai kết quả.
Cần tìm theo:
Sản phẩm = Laptop
Khu vực = Hà NộiVới Excel hiện đại, có thể sử dụng XLOOKUP kết hợp nhiều điều kiện.
Ví dụ:
=XLOOKUP(
1,
(A2:A4="Laptop")*(B2:B4="Hà Nội"),
C2:C4
)Kết quả:
1550000063. Xử lý lỗi khi tra cứu
Khi không tìm thấy dữ liệu, các hàm tra cứu có thể trả về:
#N/AVí dụ:
=XLOOKUP("SP999",A2:A4,B2:B4)Nếu SP999 không tồn tại, Excel có thể báo lỗi.
Với XLOOKUP, có thể xử lý trực tiếp:
=XLOOKUP(
"SP999",
A2:A4,
B2:B4,
"Không tìm thấy"
)IFERROR
Một cách phổ biến khác là sử dụng:
=IFERROR(công_thức,kết_quả_khi_lỗi)Ví dụ:
=IFERROR(
VLOOKUP(E2,A2:C4,2,FALSE),
"Không tìm thấy"
)Nếu VLOOKUP bị lỗi:
Không tìm thấythay vì:
#N/A🆚 SO SÁNH CÁC HÀM TRA CỨU
| Hàm | Đặc điểm |
|---|---|
| VLOOKUP | Tra cứu theo chiều dọc |
| HLOOKUP | Tra cứu theo chiều ngang |
| XLOOKUP | Tra cứu hiện đại, linh hoạt |
| INDEX | Lấy giá trị theo vị trí |
| MATCH | Tìm vị trí |
| INDEX + MATCH | Tra cứu linh hoạt |
| IFERROR | Xử lý lỗi |
⭐ VLOOKUP vs XLOOKUP
Đây là nội dung rất đáng nhớ.
VLOOKUP
=VLOOKUP(E2,A2:C10,3,FALSE)Có hạn chế:
Phải tìm ở cột đầu tiên.
Dùng số thứ tự cột.
Khó tra cứu sang trái.
XLOOKUP
=XLOOKUP(E2,A2:A10,C2:C10)Ưu điểm:
Chọn riêng vùng tìm kiếm.
Chọn riêng vùng trả kết quả.
Có thể tìm sang trái.
Có thể xử lý trường hợp không tìm thấy.
Dễ đọc hơn.
🎯 BÀI THỰC HÀNH PHẦN 7
Bảng 1 — Danh sách sản phẩm
| Mã SP | Tên sản phẩm | Loại | Đơn giá |
|---|---|---|---|
| SP001 | Laptop | Máy tính | 15000000 |
| SP002 | Máy in | Thiết bị | 5000000 |
| SP003 | Màn hình | Thiết bị | 4500000 |
| SP004 | Bàn phím | Phụ kiện | 500000 |
| SP005 | Chuột | Phụ kiện | 300000 |
Tạo một khu vực tra cứu:
| Mã SP cần tìm | Tên sản phẩm | Đơn giá |
|---|---|---|
| SP003 |
Yêu cầu 1 — VLOOKUP
Tìm tên sản phẩm:
=VLOOKUP(F2,A2:D6,2,FALSE)Yêu cầu 2 — VLOOKUP
Tìm đơn giá:
=VLOOKUP(F2,A2:D6,4,FALSE)Yêu cầu 3 — XLOOKUP
Tìm tên sản phẩm:
=XLOOKUP(F2,A2:A6,B2:B6,"Không tìm thấy")Yêu cầu 4 — XLOOKUP
Tìm đơn giá:
=XLOOKUP(F2,A2:A6,D2:D6,"Không tìm thấy")Yêu cầu 5 — MATCH
Tìm vị trí của mã sản phẩm:
=MATCH(F2,A2:A6,0)Yêu cầu 6 — INDEX
Lấy tên sản phẩm ở vị trí thứ 3:
=INDEX(B2:B6,3)Kết quả:
Màn hìnhYêu cầu 7 — INDEX + MATCH
Tìm tên sản phẩm dựa trên mã:
=INDEX(B2:B6,MATCH(F2,A2:A6,0))Yêu cầu 8 — Xử lý lỗi
Nhập:
SP999Sau đó sử dụng:
=XLOOKUP(F2,A2:A6,B2:B6,"Không tìm thấy sản phẩm")Kết quả:
Không tìm thấy sản phẩm🎯 BÀI THỰC HÀNH 2 — TRA CỨU NHÂN VIÊN
Tạo bảng:
| Mã NV | Họ tên | Phòng ban | Chức vụ | Lương |
|---|---|---|---|---|
| NV001 | Nguyễn An | Kế toán | Nhân viên | 15000000 |
| NV002 | Trần Bình | Nhân sự | Trưởng phòng | 22000000 |
| NV003 | Lê Cường | IT | Nhân viên | 18000000 |
| NV004 | Phạm Hà | Marketing | Nhân viên | 16000000 |
| NV005 | Võ Nam | Kinh doanh | Trưởng phòng | 25000000 |
Tạo ô nhập:
Mã nhân viên:
NV003Sau đó sử dụng XLOOKUP để tự động trả về:
Họ tên
=XLOOKUP(G2,A2:A6,B2:B6,"Không tìm thấy")Phòng ban
=XLOOKUP(G2,A2:A6,C2:C6,"Không tìm thấy")Chức vụ
=XLOOKUP(G2,A2:A6,D2:D6,"Không tìm thấy")Lương
=XLOOKUP(G2,A2:A6,E2:E6,"Không tìm thấy")Kết quả sẽ tự động thay đổi khi nhập một mã nhân viên khác.
🧠 KIẾN THỨC MOS CẦN NHỚ
Sau Phần 7, bạn cần nắm chắc:
VLOOKUP
=VLOOKUP(giá_trị,bảng,cột,FALSE)HLOOKUP
=HLOOKUP(giá_trị,bảng,hàng,FALSE)XLOOKUP
=XLOOKUP(giá_trị,vùng_tìm,vùng_trả_kết_quả)INDEX
=INDEX(vùng,vị_trí)MATCH
=MATCH(giá_trị,vùng,0)INDEX + MATCH
=INDEX(vùng_trả_kết_quả,MATCH(giá_trị,vùng_tìm,0))Xử lý lỗi
=IFERROR(công_thức,"Không tìm thấy")🎯 Mục tiêu của Phần 7: Khi có một mã sản phẩm, mã nhân viên hoặc mã dữ liệu, bạn phải biết cách để Excel tự động tìm và trả về thông tin tương ứng thay vì nhập thủ công.
⭐ Đặc biệt: Hãy luyện thật kỹ
VLOOKUP,XLOOKUP,INDEXvàMATCH. Đây là nhóm hàm nền tảng cho việc tra cứu dữ liệu trong Excel.



Không có nhận xét nào:
Đăng nhận xét