Dropdown Phụ Thuộc (Dependent Dropdown) Trong Excel: Tạo Danh Sách Liên Kết Tự Động
Chia sẻ
"Hướng dẫn tạo dropdown phụ thuộc trong Excel: dropdown 2 cấp, 3 cấp, dùng INDIRECT, Data Validation, Named Range, và XLOOKUP cho dropdown động."
1. Dropdown phụ thuộc là gì?
Dropdown phụ thuộc (Dependent Dropdown) là hệ thống dropdown mà giá trị dropdown SAU thay đổi TÙY THEO lựa chọn ở dropdown TRƯỚC.
Ví dụ: Chọn "Miền Bắc" → dropdown sau hiện Hà Nội, Hải Phòng. Chọn "Miền Nam" → hiện TP.HCM, Cần Thơ.
2. Cách 1: Named Range + INDIRECT (Cổ điển)
2.1. Bước 1: Chuẩn bị dữ liệu
Sheet "Data":
Miền_Bắc | Miền_Trung | Miền_Nam |
|---|---|---|
Hà Nội | Đà Nẵng | TP.HCM |
Hải Phòng | Huế | Cần Thơ |
Quảng Ninh | Nha Trang | Đà Lạt |
2.2. Bước 2: Tạo Named Range
Chọn cột Miền_Bắc (cả header) → Formulas → Create from Selection → tick Top row → OK
Excel tự tạo 3 Named Range: Miền_Bắc, Miền_Trung, Miền_Nam.
2.3. Bước 3: Dropdown cấp 1 (Miền)
Ô A2 → Data → Data Validation → List → Source:
Miền_Bắc, Miền_Trung, Miền_Nam2.4. Bước 4: Dropdown cấp 2 (Tỉnh)
Ô B2 → Data Validation → List → Source:
=INDIRECT(A2)INDIRECT chuyển text "Miền_Bắc" thành tham chiếu đến Named Range Miền_Bắc → dropdown hiện danh sách tỉnh đúng.
2.5. Xử lý Named Range có dấu cách
Named Range không chứa dấu cách. Nếu header là "Miền Bắc":
=INDIRECT(SUBSTITUTE(A2, " ", "_"))Thay dấu cách bằng _ để match Named Range.
3. Cách 2: XLOOKUP + UNIQUE (Excel 365)
3.1. Bước 1: Dữ liệu dạng bảng
Miền | Tỉnh | Huyện |
|---|---|---|
Bắc | Hà Nội | Ba Đình |
Bắc | Hà Nội | Hoàn Kiếm |
Bắc | Hải Phòng | Lê Chân |
Nam | TP.HCM | Quận 1 |
Nam | TP.HCM | Quận 3 |
3.2. Bước 2: Dropdown cấp 1
Source = UNIQUE(A2:A100) → danh sách unique miền.
3.3. Bước 3: Dropdown cấp 2
Sử dụng FILTER + UNIQUE:
=UNIQUE(FILTER(B2:B100, A2:A100=E2))E2 = giá trị dropdown cấp 1. Công thức trả danh sách tỉnh thuộc miền đã chọn.
Tuy nhiên Data Validation không nhận dynamic array trực tiếp. Cần đặt công thức vào vùng helper → dùng vùng đó làm source.
3.4. Workaround với Named Range động
Name Manager → New:
Name:
DSTinhRefers to:
=UNIQUE(FILTER(Data!B2:B100, Data!A2:A100=Sheet1!E2))
Dropdown source: =DSTinh
4. Cách 3: Dropdown 3 cấp
Miền → Tỉnh → Huyện
4.1. Named Range cho mỗi tỉnh
Mỗi tỉnh có 1 Named Range chứa danh sách huyện:
Ha_Noi: Ba Đình, Hoàn Kiếm, Đống Đa...Hai_Phong: Lê Chân, Ngô Quyền, Hồng Bàng...
4.2. Dropdown cấp 3
=INDIRECT(SUBSTITUTE(B2, " ", "_"))B2 = tỉnh đã chọn → INDIRECT trả Named Range huyện.
5. Xóa dropdown cấp dưới khi cấp trên thay đổi
Vấn đề: Chọn "Miền Bắc" → "Hà Nội" → đổi thành "Miền Nam" → B2 vẫn hiện "Hà Nội" (sai!)
5.1. Giải pháp VBA
Private Sub Worksheet_Change(ByVal Target As Range)
' Nếu đổi cấp 1 → xóa cấp 2
If Not Intersect(Target, Range("A2")) Is Nothing Then
Range("B2").ClearContents
Range("C2").ClearContents
End If
' Nếu đổi cấp 2 → xóa cấp 3
If Not Intersect(Target, Range("B2")) Is Nothing Then
Range("C2").ClearContents
End If
End Sub5.2. Giải pháp không VBA
Dùng Conditional Formatting tô đỏ nếu B2 không thuộc danh sách tỉnh của A2:
=COUNTIF(INDIRECT(SUBSTITUTE(A2," ","_")), B2)=06. Dropdown từ Table (Structured Reference)
6.1. Ưu điểm Table
Khi thêm dữ liệu mới vào Table → dropdown TỰ ĐỘNG cập nhật (không cần sửa Named Range).
6.2. Cách làm
Format dữ liệu thành Table (Ctrl+T)
Data Validation → Source:
=INDIRECT("TenTable[TenCot]")
7. Dropdown với Input Message
Data Validation → tab Input Message:
Title: "Chọn miền"
Input message: "Vui lòng chọn miền trước khi chọn tỉnh"
Hiện tooltip khi click vào ô → hướng dẫn người dùng.
8. Error Alert
Data Validation → tab Error Alert:
Style: Stop / Warning / Information
Title: "Giá trị không hợp lệ"
Message: "Vui lòng chọn từ danh sách"
Stop: Không cho nhập giá trị ngoài list
Warning: Cảnh báo nhưng cho phép nhập
Information: Thông báo nhưng cho phép
9. Mẹo Dropdown
Create from Selection: Nhanh hơn tạo Named Range thủ công
SUBSTITUTE dấu cách: Named Range không chứa space → thay bằng
_Table cho dữ liệu mở rộng: Auto-expand khi thêm dòng
VBA Clear cấp dưới: Bắt buộc cho UX tốt
Inputr Message hướng dẫn: Người dùng biết cần chọn gì
10. Tổng kết
Dropdown phụ thuộc là kỹ thuật CHUYÊN NGHIỆP biến file Excel thành form nhập liệu thông minh. Kết hợp Named Range + INDIRECT cho cách cổ điển, XLOOKUP + FILTER cho Excel 365 hiện đại. Luôn nhớ xử lý edge case: xóa cấp dưới khi đổi cấp trên, và thêm input message hướng dẫn.
Bình luận
Đăng nhập để tham gia bình luận
Đăng nhậpNhận bài viết mới nhất
Đăng ký để nhận thông báo khi có bài viết mới. Không spam, chỉ kiến thức chất lượng.
