Chào các anh chị em, hôm nay mình muốn chia sẻ một mẹo nhỏ mà mình mới khám phá ra để tạo danh sách thả xuống phụ thuộc (Dependent Dropdown List) trong Excel mà không cần dùng VBA. Cái này rất hữu ích khi mình muốn lọc dữ liệu theo nhiều cấp, ví dụ chọn Tỉnh/Thành phố xong thì danh sách Quận/Huyện sẽ tự động cập nhật.
Trước đây, mình hay dùng các cách kết hợp giữa Data Validation và INDIRECT, nhưng nó khá rắc rối và đôi khi dễ bị lỗi nếu tên vùng không chuẩn. Nhưng với công thức mảng (Array Formula) mới của Excel, mọi thứ trở nên đơn giản hơn rất nhiều.
Cách làm của mình như sau:
- Đầu tiên, bạn cần có 2 danh sách: Danh sách chính (ví dụ: Tỉnh/Thành phố) và danh sách phụ thuộc (ví dụ: Quận/Huyện).
- Chuẩn bị dữ liệu: Sắp xếp danh sách Quận/Huyện sao cho các Quận/Huyện thuộc cùng một Tỉnh/Thành phố nằm liền kề nhau.
- Tạo danh sách thả xuống cho Tỉnh/Thành phố như bình thường.
- Đối với danh sách thả xuống cho Quận/Huyện, bạn sử dụng công thức mảng. Giả sử danh sách Tỉnh/Thành phố bạn chọn ở ô
A2, và bạn muốn tạo danh sách Quận/Huyện ở ôB2. Công thức sẽ trông giống như thế này (cần điều chỉnh phạm vi cho phù hợp với dữ liệu của bạn):
=IFERROR(INDEX(DanhSachQuanHuyen, SMALL(IF(INDEX(BangDuLieuQuanHuyen,0,MATCH(A2,TenCotTinhThanh,0))=$A$2,ROW(BangDuLieuQuanHuyen)-ROW(FirstCellOfBangDuLieuQuanHuyen)+1),ROW(1:1))),"")Công thức này sẽ tìm tất cả các Quận/Huyện tương ứng với Tỉnh/Thành phố đã chọn ở A2 và tạo thành danh sách. IFERROR giúp ẩn lỗi nếu không tìm thấy kết quả.
Cách này thực sự tiết kiệm thời gian và làm cho file Excel của mình chuyên nghiệp hơn hẳn. Anh em nào thử nghiệm thấy hay thì cho mình xin ý kiến nhé!