1. XLOOKUP là gì?

XLOOKUP là hàm tra cứu giá trị trong một vùng dữ liệu (dọc hoặc ngang) và trả về giá trị tương ứng từ một vùng khác. Khác với VLOOKUP bị giới hạn tra cứu từ trái sang phải, XLOOKUP cho phép tra cứu theo mọi hướng, mặc định là tra cứu chính xác, và có sẵn tham số xử lý lỗi khi không tìm thấy kết quả.

⚠️ Lưu ý: XLOOKUP chỉ hoạt động trên Excel 365, Excel 2021 trở lên và Excel Online. Các phiên bản Excel 2019 trở về trước sẽ báo lỗi #NAME?.


2. Cú pháp hàm XLOOKUP

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])

Giải thích các tham số

Tham số Bắt buộc Ý nghĩa
lookup_value Giá trị cần tìm
lookup_array Vùng chứa giá trị cần tìm
return_array Vùng chứa giá trị sẽ trả về
if_not_found Giá trị hiển thị khi không tìm thấy (thay cho #N/A)
match_mode 0 – chính xác (mặc định), -1 – gần nhất nhỏ hơn, 1 – gần nhất lớn hơn, 2 – ký tự đại diện
search_mode 1 – từ trên xuống (mặc định), -1 – từ dưới lên, 2/-2 – tìm kiếm nhị phân

3. Vì sao XLOOKUP vượt trội hơn VLOOKUP & HLOOKUP?

  • Tra cứu cả chiều dọc lẫn chiều ngang – không cần phân biệt V hay H.
  • Tra cứu sang trái mà không cần thủ thuật INDEX/MATCH.
  • Mặc định khớp chính xác, tránh lỗi quên tham số FALSE trong VLOOKUP.
  • Xử lý lỗi tích hợp sẵn – không cần bọc thêm IFERROR.
  • An toàn khi chèn/xóa cột, vì tham chiếu theo vùng chứ không theo số thứ tự cột.
  • Hỗ trợ tra cứu đa điều kiện, tra cứu 2 chiều, trả về nhiều cột cùng lúc.
  • Tốc độ xử lý nhanh hơn trên bảng dữ liệu lớn.

4. 10 ví dụ thực chiến với XLOOKUP

📘 Ví dụ 1 – Tra cứu cơ bản theo chiều dọc

Yêu cầu: Cho bảng nhân viên, tìm Họ tên dựa vào Mã nhân viên.

Bảng dữ liệu (A1:C6):

A (Mã NV) B (Họ tên) C (Phòng ban)
NV001 Nguyễn Văn An Kinh doanh
NV002 Trần Thị Bình Kế toán
NV003 Lê Văn Cường Nhân sự
NV004 Phạm Thị Dung Marketing
NV005 Hoàng Văn Em IT

Ô E1 nhập mã cần tìm: NV003

Công thức tại ô F1:

=XLOOKUP(E1, A2:A6, B2:B6)

Kết quả: Lê Văn Cường

Giải thích: Hàm tìm giá trị NV003 trong vùng A2:A6 và trả về giá trị tương ứng trong B2:B6.


📘 Ví dụ 2 – Tra cứu theo chiều ngang (thay HLOOKUP)

Yêu cầu: Bảng doanh thu các tháng nằm theo hàng ngang. Tìm doanh thu theo tên tháng.

Bảng dữ liệu (A1:E2):

A B C D E
Tháng T1 T2 T3 T4
Doanh thu 120 150 180 210

Ô A4 nhập: T3

Công thức tại ô B4:

=XLOOKUP(A4, B1:E1, B2:E2)

Kết quả: 180


📘 Ví dụ 3 – Tra cứu sang trái (VLOOKUP không làm được)

Yêu cầu: Có Họ tên, cần tìm ngược lại Mã nhân viên.

Bảng dữ liệu (A1:B6):

A (Mã NV) B (Họ tên)
NV001 Nguyễn Văn An
NV002 Trần Thị Bình
NV003 Lê Văn Cường
NV004 Phạm Thị Dung
NV005 Hoàng Văn Em

Ô D1 nhập: Phạm Thị Dung

Công thức tại ô E1:

=XLOOKUP(D1, B2:B6, A2:A6)

Kết quả: NV004

Giải thích: lookup_array là cột B (bên phải), return_array là cột A (bên trái) – XLOOKUP xử lý dễ dàng.


📘 Ví dụ 4 – Tra cứu gần đúng (xếp loại theo doanh số)

Yêu cầu: Tính mức thưởng theo doanh số đạt được, dựa vào bảng xếp hạng.

Bảng xếp hạng (A1:C5):

A (Doanh số từ) B (Xếp loại) C (Thưởng)
0 Yếu 0
50 Trung bình 500.000
100 Khá 1.500.000
200 Giỏi 3.000.000
500 Xuất sắc 7.000.000

Ô E2 nhập doanh số thực tế: 157

Công thức tại ô F2:

=XLOOKUP(E2, $A$2:$A$6, $C$2:$C$6, , -1)

Kết quả: 1.500.000

Giải thích: Tham số -1 nghĩa là nếu không khớp chính xác, lấy giá trị gần nhất nhỏ hơn. Với doanh số 157, mốc gần nhất nhỏ hơn là 100 → Thưởng 1.500.000.


📘 Ví dụ 5 – Tra cứu với ký tự đại diện

Yêu cầu: Tìm giá của sản phẩm có tên chứa chữ "iPhone 15".

Bảng sản phẩm (A1:B5):

A (Tên sản phẩm) B (Giá)
Samsung Galaxy S24 22.000.000
iPhone 14 Pro Max 256GB 26.000.000
iPhone 15 Pro 128GB 28.000.000
Xiaomi 14 18.000.000
iPhone 16 30.000.000

Công thức tại ô D1:

=XLOOKUP("*iPhone 15*", A2:A6, B2:B6, , 2)

Kết quả: 28.000.000

Giải thích: Tham số match_mode = 2 cho phép dùng ký tự đại diện * (thay cho nhiều ký tự) và ? (thay cho 1 ký tự).


📘 Ví dụ 6 – Tra cứu từ dưới lên (lấy giao dịch mới nhất)

Yêu cầu: Một khách hàng có nhiều giao dịch, lấy số tiền của lần giao dịch gần nhất.

Bảng giao dịch (A1:C7) – sắp xếp theo ngày tăng dần:

A (Ngày) B (Khách hàng) C (Số tiền)
01/03/2026 KH01 1.000.000
05/03/2026 KH02 2.500.000
10/03/2026 KH01 1.800.000
15/03/2026 KH03 3.200.000
20/03/2026 KH01 2.200.000
25/03/2026 KH02 1.500.000

Ô E1 nhập: KH01

Công thức tại ô F1:

=XLOOKUP(E1, B2:B7, C2:C7, , , -1)

Kết quả: 2.200.000

Giải thích: Tham số search_mode = -1 nghĩa là tìm từ dưới lên trên. KH01 xuất hiện 3 lần, hàm sẽ trả về kết quả từ dòng cuối cùng (ngày 20/03) = 2.200.000.


📘 Ví dụ 7 – Trả về nhiều cột cùng lúc

Yêu cầu: Từ mã nhân viên, lấy ra cả Họ tên, Phòng ban, Lương chỉ trong một công thức.

Bảng dữ liệu (A1:D5):

A (Mã) B (Họ tên) C (Phòng ban) D (Lương)
NV001 Nguyễn Văn An Kinh doanh 15.000.000
NV002 Trần Thị Bình Kế toán 12.000.000
NV003 Lê Văn Cường Nhân sự 13.000.000
NV004 Phạm Thị Dung Marketing 14.500.000

Ô F2 nhập: NV003

Công thức tại ô G2:

=XLOOKUP(F2, A2:A5, B2:D5)

Kết quả (tự động tràn sang G2, H2, I2):

G2 H2 I2
Lê Văn Cường Nhân sự 13.000.000

Giải thích: Khi return_array là vùng nhiều cột, XLOOKUP sẽ tự động trả về toàn bộ hàng tương ứng (tính năng dynamic array của Excel 365).


📘 Ví dụ 8 – Tra cứu đa điều kiện

Yêu cầu: Tìm lương của nhân viên thoả đồng thời Phòng ban = "Kinh doanh"Chức vụ = "Trưởng phòng".

Bảng dữ liệu (A1:D6):

A (Phòng ban) B (Chức vụ) C (Họ tên) D (Lương)
Kinh doanh Nhân viên An 10.000.000
Kế toán Trưởng phòng Bình 20.000.000
Kinh doanh Trưởng phòng Cường 25.000.000
Nhân sự Nhân viên Dung 9.000.000
Kinh doanh Phó phòng Em 18.000.000

Ô F1: Kinh doanh | Ô F2: Trưởng phòng

Công thức tại ô F3:

=XLOOKUP(1, (A2:A6=F1)*(B2:B6=F2), D2:D6)

Kết quả: 25.000.000

Giải thích: Biểu thức (A2:A6=F1)*(B2:B6=F2) tạo ra mảng 0/1, chỉ dòng nào thoả cả hai điều kiện mới = 1. XLOOKUP tìm giá trị 1 đầu tiên và trả về cột lương tương ứng.


📘 Ví dụ 9 – Tra cứu 2 chiều (thay INDEX/MATCH/MATCH)

Yêu cầu: Tìm doanh thu theo Miền (hàng) và Tháng (cột).

Bảng dữ liệu (A1:E4):

A B (T1) C (T2) D (T3) E (T4)
Miền Bắc 100 120 150 170
Miền Trung 80 95 110 125
Miền Nam 130 145 180 200

Ô G1: Miền Nam | Ô G2: T3

Công thức tại ô G3:

=XLOOKUP(G1, A2:A4, XLOOKUP(G2, B1:E1, B2:E4))

Kết quả: 180

Giải thích:

  • XLOOKUP(G2, B1:E1, B2:E4) trả về cả cột T3 → {150; 110; 180}
  • XLOOKUP ngoài cùng tìm "Miền Nam" trong cột A → lấy giá trị 180.

📘 Ví dụ 10 – Xử lý lỗi không cần IFERROR

Yêu cầu: Khi không tìm thấy mã, hiển thị thông báo thân thiện thay vì #N/A.

Bảng dữ liệu (A1:B4):

A (Mã) B (Họ tên)
NV001 Nguyễn Văn An
NV002 Trần Thị Bình
NV003 Lê Văn Cường

Ô D1 nhập: NV099 (mã không tồn tại)

Công thức tại ô E1:

=XLOOKUP(D1, A2:A4, B2:B4, "Không tìm thấy mã!")

Kết quả: Không tìm thấy mã!

Giải thích: Thay vì công thức cũ =IFERROR(VLOOKUP(...), "Không tìm thấy"), XLOOKUP xử lý ngay trong tham số thứ 4.


5. Các lỗi thường gặp và cách khắc phục

Lỗi Nguyên nhân Cách xử lý
#NAME? Excel của bạn không hỗ trợ XLOOKUP Nâng cấp lên Excel 365/2021 hoặc dùng INDEX/MATCH
#N/A Không tìm thấy giá trị Dùng tham số if_not_found
#VALUE! lookup_arrayreturn_array khác kích thước Kiểm tra lại vùng dữ liệu
#REF! Vùng tham chiếu đã bị xóa Khôi phục lại cột/hàng dữ liệu
#SPILL! Ô bên cạnh có dữ liệu chặn kết quả tràn Xóa dữ liệu cản trở ở các ô liền kề
Kết quả sai khi kéo công thức Quên cố định vùng Dùng $ để khóa: $A$2:$A$100

6. Kết luận

XLOOKUP không đơn thuần là một "bản nâng cấp" của VLOOKUP – nó là một cuộc cách mạng trong cách chúng ta tra cứu dữ liệu trong Excel. Với cú pháp ngắn gọn, khả năng linh hoạt và hiệu năng vượt trội, XLOOKUP xứng đáng trở thành hàm tra cứu mặc định trong mọi workbook của bạn.

👉 Lời khuyên: Nếu bạn đang dùng Excel 365, hãy tập thói quen sử dụng XLOOKUP ngay hôm nay. Công việc xử lý dữ liệu của bạn sẽ nhanh và gọn hơn rất nhiều.

Chúc bạn thành công với Excel!