Chào các bác, hôm nay em muốn chia sẻ một mẹo nhỏ mà em mới tìm ra để xử lý cái vụ tạo danh sách thả xuống phụ thuộc trong Excel. Vụ này làm thủ công thì hơi lằng nhằng, nhất là khi có nhiều cấp phụ thuộc.
Em tình cờ mò được cách dùng công thức mảng (Array Formula) để làm nó tự động hoàn toàn, không cần dùng VBA hay Name Manager phức tạp. Cách này cực kỳ hữu ích khi các bác làm form nhập liệu, khảo sát hay bất kỳ bảng tính nào cần chọn lựa theo trình tự.
Giả sử mình có 2 cột: Cột A: Danh mục chính (VD: Miền Bắc, Miền Trung, Miền Nam) và Cột B: Danh mục phụ (VD: Hà Nội, Hải Phòng, Đà Nẵng, Huế, TP.HCM, Cần Thơ). Mình muốn khi chọn 'Miền Bắc' ở ô A1 thì ô B1 chỉ hiện các tỉnh thuộc Miền Bắc.
Cách làm đơn giản như sau:
- Tạo 2 vùng dữ liệu: 1 cho danh mục chính, 1 cho danh mục phụ. Danh mục phụ nên có tên cột trùng với tên danh mục chính để dễ tham chiếu.
- Tại ô chứa danh sách thả xuống phụ (ô B1), dùng công thức sau (nhập bằng Ctrl+Shift+Enter nếu không phải Office 365):
=IFERROR(INDEX(Vung_DuLieu_Mien,MATCH(A1,Vung_DuLieu_Ten_Mien,0)), "") - Trong đó:
Vung_DuLieu_Mien: Là vùng chứa tất cả các tỉnh/thành phố của các miền.Vung_DuLieu_Ten_Mien: Là vùng chứa tên các miền (cột A).A1: Ô chứa danh mục chính đã chọn.
Em thấy cách này gọn gàng và dễ quản lý hơn nhiều so với việc dùng Name Manager cho từng danh mục. Bác nào thử rồi cho em xin ý kiến với ạ! Nếu có cách nào hay hơn thì chia sẻ cho mọi người cùng học hỏi nhé!