Bài 7: Nhóm Hàm Tìm Kiếm & Tham Chiếu Dữ Liệu
Giai đoạn 2 – Trung cấp · Mục tiêu: Thành thạo VLOOKUP, HLOOKUP, INDEX & MATCH và giới thiệu XLOOKUP – bộ hàm quyền lực nhất trong Excel.
1. Hàm VLOOKUP – Tìm kiếm theo cột dọc
Cú pháp
=VLOOKUP(giá_trị_tìm, bảng_tham_chiếu, cột_trả_về, kiểu_tìm)
| Tham số | Ý nghĩa |
|---|---|
giá_trị_tìm | Giá trị cần tìm (thường là mã, tên) |
bảng_tham_chiếu | Vùng dữ liệu chứa bảng tra cứu |
cột_trả_về | Số thứ tự cột muốn lấy kết quả (đếm từ 1) |
kiểu_tìm | 0 = chính xác, 1 = tương đối (gần đúng) |
Ví dụ
Bảng tra cứu giá sản phẩm tại Sheet2!A:C:
| A (Mã SP) | B (Tên SP) | C (Đơn giá) |
|---|---|---|
| SP001 | Bút bi | 5,000 |
| SP002 | Vở | 8,000 |
| SP003 | Thước | 3,000 |
=VLOOKUP("SP002", Sheet2!A:C, 3, 0)
→ Kết quả: 8,000 (đơn giá của Vở)
:::warning Hạn chế của VLOOKUP
- Chỉ tìm kiếm từ trái qua phải – cột tìm kiếm phải là cột đầu tiên của bảng.
- Nếu thêm/xóa cột, số thứ tự cột sẽ bị sai → phải sửa thủ công.
- Chậm khi dữ liệu lớn (hàng trăm nghìn dòng). :::
2. Hàm HLOOKUP – Tìm kiếm theo dòng ngang
Cú pháp
=HLOOKUP(giá_trị_tìm, bảng_tham_chiếu, dòng_trả_về, kiểu_tìm)
Tương tự VLOOKUP nhưng bảng dữ liệu được tổ chức theo hàng ngang thay vì dọc.
Ví dụ
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Tháng 1 | Tháng 2 | Tháng 3 | Tháng 4 |
| 2 | 100 | 150 | 200 | 180 |
| 3 | 80 | 120 | 160 | 140 |
=HLOOKUP("Tháng 3", A1:D3, 2, 0)
→ Kết quả: 200 (giá trị dòng 2 của cột "Tháng 3")
3. Bộ đôi INDEX & MATCH – Giải pháp linh hoạt
Tại sao cần INDEX & MATCH?
- Khắc phục mọi hạn chế của VLOOKUP.
- Có thể tìm kiếm từ phải qua trái (VLOOKUP không làm được).
- Không phụ thuộc vào số thứ tự cột → an toàn hơn khi chèn/xóa cột.
Hàm MATCH – Tìm vị trí
=MATCH(giá_trị_tìm, vùng_tìm, kiểu_tìm)
→ Trả về số thứ tự (vị trí) của giá trị trong vùng.
=MATCH("SP002", A2:A100, 0) → Kết quả: 2 (vị trí thứ 2)
Hàm INDEX – Lấy giá trị theo vị trí
=INDEX(vùng_dữ_liệu, dòng, [cột])
=INDEX(C2:C100, 2) → Lấy giá trị ở vị trí thứ 2 trong cột C
Kết hợp INDEX & MATCH
=INDEX(cột_kết_quả, MATCH(giá_trị_tìm, cột_tìm_kiếm, 0))
Ví dụ: Tìm đơn giá từ mã sản phẩm (tương đương VLOOKUP nhưng linh hoạt hơn):
=INDEX(C2:C100, MATCH("SP002", A2:A100, 0))
→ Kết quả: 8,000
Ví dụ: Tìm ngược từ phải qua trái – Biết đơn giá, tìm tên sản phẩm:
=INDEX(B2:B100, MATCH(8000, C2:C100, 0))
→ Kết quả: "Vở"
:::tip So sánh nhanh
| Tiêu chí | VLOOKUP | INDEX & MATCH |
|---|---|---|
| Hướng tìm kiếm | Trái → Phải | Bất kỳ hướng nào |
| Phụ thuộc cột | Có (cột số) | Không |
| Tốc độ | Chậm hơn | Nhanh hơn |
| Độ linh hoạt | Thấp | Cao |
| ::: |
4. Hàm XLOOKUP – Thế hệ mới (Excel 365 / 2021+)
Cú pháp
=XLOOKUP(giá_trị_tìm, vùng_tìm, vùng_kết_quả, [giá_trị_mặc_định], [kiểu_khớp], [chế_độ_tìm])
Ưu điểm so với VLOOKUP
- Tìm kiếm mọi hướng (dọc/ngang, trái/phải).
- Tham số
giá_trị_mặc_địnhtích hợp sẵn (không cần IFERROR). - Cú pháp đơn giản, dễ đọc hơn.
Ví dụ
=XLOOKUP("SP002", A2:A100, C2:C100, "Không tìm thấy")
→ Kết quả: 8,000
=XLOOKUP("SP999", A2:A100, C2:C100, "Không tìm thấy")
→ Kết quả: "Không tìm thấy"
:::info Tương thích
XLOOKUP chỉ có trên Excel 365 và Excel 2021 trở lên. Nếu dùng phiên bản cũ hơn, hãy sử dụng INDEX & MATCH.
:::
Bài tập thực hành
Sheet1 – Đơn hàng: Mã SP, Số lượng
Sheet2 – Bảng giá: Mã SP, Tên SP, Đơn giá, Nhóm hàng
- Dùng
VLOOKUPđể điền Tên SP và Đơn giá vào Sheet1. - Dùng
INDEX & MATCHđể điền Nhóm hàng (cột nằm bên trái cột Mã SP). - Bọc tất cả công thức trong
IFERRORđể xử lý mã SP không tồn tại. - (Nếu có Excel 365) Thử lại bằng
XLOOKUP.
Bài trước: Bài 6 – Hàm Thống Kê Điều Kiện · Bài tiếp: Bài 8 – Hàm Chuỗi & Thời Gian