Chào mọi người, mình là một người dùng Excel lâu năm và thường xuyên phải làm việc với các bảng dữ liệu lớn. Gần đây, mình có tìm hiểu sâu hơn về các hàm tra cứu trong Excel và nhận ra rằng cặp đôi INDEX và MATCH thực sự là một giải pháp mạnh mẽ, linh hoạt hơn rất nhiều so với VLOOKUP hay HLOOKUP truyền thống.
VLOOKUP có một hạn chế lớn là chỉ có thể tra cứu từ trái sang phải. Điều này gây ra không ít bất tiện khi cột chứa giá trị cần tìm nằm ở bên trái cột trả về. Trong khi đó, INDEX và MATCH lại giải quyết triệt để vấn đề này.
INDEX(array, row_num, [column_num]): Trả về giá trị của ô tại giao điểm của một hàng và một cột cụ thể trong một phạm vi hoặc mảng cho trước.
MATCH(lookup_value, lookup_array, [match_type]): Trả về vị trí tương đối của một mục trong một mảng mà khớp với một giá trị được chỉ định.
Khi kết hợp hai hàm này, ta có thể:
- Tra cứu dữ liệu ở bất kỳ cột nào, không phân biệt trái hay phải.
- Linh hoạt hơn trong việc xác định phạm vi tìm kiếm.
- Tối ưu hóa hiệu suất cho các bảng tính lớn.
Ví dụ đơn giản:
Giả sử bạn có bảng dữ liệu sau:
A B C D ID Tên Tuổi Thành phố 101 An 25 Hà Nội 102 Bình 30 TP.HCM 103 Cường 22 Đà Nẵng
Để tìm Thành phố của người có ID là 102, thay vì dùng VLOOKUP, ta có thể dùng:
=INDEX(D2:D4, MATCH(102, A2:A4, 0))
Hàm MATCH(102, A2:A4, 0) sẽ trả về 2 (vì ID 102 ở dòng thứ 2 trong phạm vi A2:A4). Sau đó, INDEX(D2:D4, 2) sẽ lấy giá trị ở dòng thứ 2 trong phạm vi D2:D4, tức là 'TP.HCM'.
Cách này tuy hơi dài hơn VLOOKUP một chút nhưng mang lại sự linh hoạt vượt trội. Mọi người đã áp dụng cặp đôi này trong công việc chưa? Chia sẻ kinh nghiệm của bạn nhé!