Chào các anh em trong diễn đàn,
Dạo này mình đang làm một file quản lý dữ liệu khách hàng trên Google Sheets và gặp phải vấn đề cần tạo danh sách thả xuống phụ thuộc (cascading dropdown). Ví dụ, khi chọn Tỉnh/Thành phố ở ô A1, thì danh sách các Quận/Huyện ở ô B1 sẽ tự động hiển thị các quận/huyện tương ứng của tỉnh/thành phố đó.
Mình đã tìm hiểu và thử nghiệm một số cách, hôm nay chia sẻ lại với mọi người một phương pháp khá hiệu quả mà mình thấy ít được đề cập:
- Bước 1: Chuẩn bị dữ liệu nguồn
- Tạo một sheet mới (ví dụ tên là
DataNguon). - Trong sheet này, bạn tạo 2 cột: Cột đầu tiên là Tỉnh/Thành phố, cột thứ hai là Quận/Huyện.
- Nhập dữ liệu theo dạng: mỗi dòng là một cặp Tỉnh/Thành phố - Quận/Huyện. Nếu một Tỉnh có nhiều Quận/Huyện, bạn lặp lại Tên Tỉnh ở các dòng tương ứng.
- Ví dụ:
Tỉnh/Thành phố | Quận/Huyện Miền Bắc | Hà Nội Miền Bắc | Hải Phòng Miền Trung | Đà Nẵng Miền Trung | Huế Miền Nam | TP. Hồ Chí Minh Miền Nam | Cần Thơ
- Tại ô bạn muốn tạo dropdown đầu tiên (ví dụ ô A2 trên Sheet1), vào Data > Data validation.
- Chọn Criteria là List from a range.
- Trong ô Range, nhập công thức để lấy danh sách Tỉnh/Thành phố duy nhất từ sheet
DataNguon. Giả sử Tỉnh/Thành phố nằm ở cột A củaDataNguon, bạn nhập:=UNIQUE(DataNguon!A2:A) - Nhấn Save.
- Tại ô bạn muốn tạo dropdown thứ hai (ví dụ ô B2 trên Sheet1), vào Data > Data validation.
- Chọn Criteria là List from a range.
- Trong ô Range, nhập công thức sử dụng hàm
FILTERđể lấy danh sách Quận/Huyện dựa trên Tỉnh/Thành phố đã chọn ở ô A2. Giả sử Tỉnh/Thành phố ở A2 và Quận/Huyện ở B2 của sheetDataNguon:=FILTER(DataNguon!B2:B, DataNguon!A2:A = A2) - Nhấn Save.
Lưu ý: Bạn cần áp dụng Data Validation cho toàn bộ cột hoặc các dòng cần thiết. Có thể dùng Apply to range để chọn nhiều dòng.
Cách này giúp dữ liệu nhập vào có cấu trúc và tránh sai sót. Mọi người thử xem sao và cho mình xin ý kiến nhé!