Mục lục bài viết[Hide][Show]
XLOOKUP thay thế VLOOKUP trong báo cáo khách sạn (RevPAR, ADR, Occupancy)
Xem thêm: Báo cáo doanh thu để hiểu cách áp dụng Excel trong thực tế.
XLOOKUP là hàm tra cứu mới của Excel, ra mắt từ 2019, giải quyết hầu hết các hạn chế của VLOOKUP và HLOOKUP. Nếu bạn dùng Office 365 hoặc Excel 2021 trở lên, đây là hàm bạn nên dùng. (xem thêm: Revenue Report)
Tại sao XLOOKUP tốt hơn VLOOKUP?
| VLOOKUP | XLOOKUP |
| Chỉ tra cứu sang phải | Tra cứu sang trái hoặc phải |
| Cần đánh số cột | Không cần đếm cột |
| Phải sắp xếp cột đầu tiên | Không cần sắp xếp |
| Không tìm được giá trị nhỏ hơn gần nhất | Tìm được exact hoặc nearest match |
Cú pháp XLOOKUP
=XLOOKUP(lookup_value, lookup_array, return_array, if_not_found, match_mode, search_mode)
Trong đó:
- lookup_value: Giá trị cần tìm
- lookup_array: Vùng chứa giá trị tìm kiếm
- return_array: Vùng trả về kết quả
- if_not_found: Giá trị nếu không tìm thấy (tùy chọn)
- match_mode: Chế độ khớp: 0=exact, -1=exact or next smallest, 1=exact or next largest, 2=wildcard (tùy chọn)
- search_mode: Hướng tìm kiếm: 1=first to last, -1=last to first (tùy chọn)
Ví dụ 1: Tra cứu Room Type từ Room Code
Giả sử bạn có bảng mã phòng:
| Mã phòng | Tên phòng | Giá |
| DLX01 | Deluxe Ocean View | 1,500,000 |
| DLX02 | Deluxe Pool Access | 1,800,000 |
| STE01 | Suite Beach Front | 3,500,000 |
Dùng XLOOKUP
=XLOOKUP("DLX02", A:A, B:B, "Khong tim thay")
Kết quả: “Deluxe Pool Access”
So sánh với VLOOKUP
=VLOOKUP("DLX02", A:C, 2, FALSE)
XLOOKUP ngắn gọn hơn, không cần đánh số cột.
Ví dụ 2: Tra cứu sang TRÁI
Đây là điều VLOOKUP không làm được. Giả sử bạn có bảng:
| Mã phòng | Giá |
| DLX01 | 1,500,000 |
| STE01 | 3,500,000 |
Bạn muốn tra cứu GIÁ từ MÃ phòng (giá nằm bên trái mã):
=XLOOKUP("DLX01", B:B, A:A)
VLOOKUP không thể làm điều này vì giá nằm ở cột trước mã.
Ví dụ 3: Tra cứu với điều kiện gần đúng (Approximate Match)
Trong báo cáo khách sạn, bạn thường cần xếp hạng Occupancy:
| Occupancy | Hạng |
| 0% | F |
| 50% | D |
| 70% | C |
| 85% | B |
| 95% | A |
=XLOOKUP(72, A:A, B:B, "F", -1)
Với match_mode = -1, XLOOKUP sẽ tìm giá trị nhỏ hơn gần nhất. Kết quả: “C” (vì 72 nằm giữa 70 và 85, nên trả về hạng của 70).
Ví dụ 4: Trả về nhiều cột
XLOOKUP có thể trả về nhiều giá trị cùng lúc:
=XLOOKUP("DLX02", A:A, B:B)
Muốn trả về nhiều cột? Dùng công thức mảng hoặc kết hợp INDEX:
=INDEX(B:D, MATCH("DLX02", A:A, 0), 0)
Ví dụ 5: Tìm kiếm từ dưới lên (Last Match)
Khi có nhiều booking trùng ngày và bạn muốn lấy booking cuối cùng:
=XLOOKUP("2025-01-15", A:A, C:C, "Khong tim thay", 0, -1)
search_mode = -1 nghĩa là tìm từ dưới lên, lấy kết quả cuối cùng.
XLOOKUP vs INDEX/MATCH
| Tiêu chí | XLOOKUP | INDEX/MATCH |
| Độ dài công thức | Ngắn hơn | Dài hơn |
| Tra cứu trái | Có | Có |
| Đa điều kiện | Không | Có (kết hợp nhiều MATCH) |
| Tốc độ | Nhanh | Nhanh |
| Tương thích | Office 365/2021+ | Mọi phiên bản |
INDEX/MATCH vẫn được dùng phổ biến vì tương thích rộng rãi. Nhưng nếu bạn dùng Office 365, hãy chuyển sang XLOOKUP.
Lưu ý khi dùng XLOOKUP
Kiểm tra phiên bản Excel
XLOOKUP chỉ có trong:
- Microsoft 365
- Excel 2021 trở lên
Không có trong Excel 2019 hoặc cũ hơn.
Nếu không có XLOOKUP
Dùng INDEX/MATCH thay thế:
=INDEX(B:B, MATCH("DLX02", A:A, 0))
Tóm tắt cú pháp
=XLOOKUP(lookup_value, lookup_array, return_array, if_not_found, match_mode, search_mode)
- match_mode: 0 (exact), -1 (exact or next smaller), 1 (exact or next larger), 2 (wildcard)
- search_mode: 1 (first to last), -1 (last to first)
XLOOKUP là hàm tra cứu hiện đại và mạnh mẽ nhất của Excel. Nếu bạn đang dùng VLOOKUP, đây là lúc để chuyển đổi.



Phân tích Segment Revenue (FITs, Groups, Corporate)