Có thể bạn quan tâm: Trong Excel Là Lỗi Gì? – Tổng Hợp Các Lỗi Phổ Biến Và Cách Khắc Phục Hiệu Quả
1. Giới thiệu chung về tính năng lựa chọn trong Excel
Excel là một trong những công cụ phần mềm bảng tính mạnh mẽ và phổ biến nhất hiện nay. Không chỉ giúp người dùng thực hiện các phép tính đơn giản, Excel còn hỗ trợ rất nhiều tính năng nâng cao giúp tăng năng suất và giảm thiểu sai sót trong quá trình xử lý dữ liệu. Một trong những tính năng quan trọng, thường được sử dụng trong việc xây dựng biểu mẫu, báo cáo, và các bảng dữ liệu tương tác là lựa chọn (dropdown list), hay còn gọi là list validation.
Lựa chọn trong Excel cho phép người dùng tạo ra một danh sách các giá trị có sẵn mà người dùng cuối chỉ có thể chọn từ danh sách đó. Điều này mang lại nhiều lợi ích:
- Giảm thiểu lỗi nhập liệu: Người dùng không thể gõ sai hoặc nhập giá trị không hợp lệ.
- Tiết kiệm thời gian: Thay vì phải gõ tay, người dùng chỉ cần nhấp và chọn.
- Chuẩn hoá dữ liệu: Đảm bảo tính thống nhất trong toàn bộ bảng tính.
- Tăng tính tương tác: Khi kết hợp với các công cụ như công thức, biểu đồ, bảng tổng hợp, danh sách lựa chọn giúp người dùng tạo ra các báo cáo động.
Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, từ cơ bản đến nâng cao, về cách tạo lựa chọn trong Excel. Chúng tôi sẽ đề cập đến các phương pháp khác nhau, bao gồm sử dụng Data Validation, Combo Box (ActiveX và Form Controls), Dynamic Named Ranges, và cách kết hợp với các hàm để tạo danh sách tự động cập nhật. Ngoài ra, bạn sẽ học cách bảo vệ danh sách, định dạng có điều kiện, và tích hợp với Power Query để quản lý dữ liệu lớn.
Có thể bạn quan tâm: Mẫu Bảng Chấm Công Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
2. Cách tạo danh sách lựa chọn đơn giản bằng Data Validation
2.1. Khái niệm Data Validation
Data Validation (Xác thực dữ liệu) là một tính năng cho phép bạn kiểm soát loại dữ liệu mà người dùng có thể nhập vào ô. Khi bạn sử dụng tính năng này để tạo danh sách lựa chọn, Excel sẽ hiển thị một mũi tên thả xuống (dropdown arrow) ở góc phải của ô, cho phép người dùng chọn một trong các giá trị mà bạn đã định nghĩa.
2.2. Các bước thực hiện
Bước 1: Chuẩn bị danh sách nguồn
- Mở một sheet mới (hoặc một sheet hiện có) và nhập các giá trị mà bạn muốn hiển thị trong danh sách lựa chọn.
- Ví dụ, trong Sheet2, nhập các mục sau vào cột A (A1:A5):
NamNữKhác
Lưu ý: Đặt danh sách nguồn ở một vị trí cố định và tránh để người dùng vô tình thay đổi chúng. Bạn có thể ẩn sheet này hoặc đặt nó ở cuối workbook.
Bước 2: Chọn ô cần áp dụng danh sách
- Quay lại sheet mà bạn muốn tạo danh sách, ví dụ Sheet1.
- Chọn ô hoặc phạm vi ô (ví dụ B2:B20) mà bạn muốn gán danh sách lựa chọn.
Bước 3: Mở hộp thoại Data Validation
- Vào Data → Data Tools → Data Validation (hoặc nhấn Alt + D + L).
- Trong tab Settings, ở mục Allow, chọn List.
Bước 4: Xác định nguồn dữ liệu
- Trong ô Source, bạn có 2 cách:
- Nhập trực tiếp:
Nam,Nữ,Khác(phân cách bằng dấu phẩy). - Tham chiếu tới phạm vi:
=Sheet2!$A$1:$A$3. - Đánh dấu In‑cell dropdown để hiển thị mũi tên thả xuống.
Bước 5: Thiết lập thông báo lỗi (tùy chọn)
- Tab Input Message: Nhập tiêu đề và thông điệp để hướng dẫn người dùng khi họ chọn ô.
- Tab Error Alert: Chọn kiểu cảnh báo (Stop, Warning, Information) và thông điệp khi người dùng nhập giá trị không hợp lệ.
Bước 6: Kiểm tra
- Quay lại ô đã áp dụng, bạn sẽ thấy mũi tên thả xuống. Nhấp vào và chọn một giá trị để xác nhận.
2.3. Lợi ích và hạn chế
| Lợi ích | Hạn chế |
|---|---|
| Dễ thiết lập, không cần VBA | Không hỗ trợ nhiều cột (chỉ một danh sách đơn) |
| Tự động cập nhật khi thay đổi nguồn (nếu dùng tham chiếu) | Không cho phép người dùng nhập giá trị tùy chỉnh (trừ khi bỏ tick “In‑cell dropdown”) |
| Tương thích tốt với các phiên bản Excel | Khi danh sách dài, việc cuộn có thể không mượt mà |
Có thể bạn quan tâm: Hàm Xếp Hạng Trong Excel: Cách Sử Dụng, Ứng Dụng Thực Tiễn Và Mẹo Tối Ưu
3. Tạo danh sách lựa chọn động (Dynamic List) sử dụng Named Ranges
Khi danh sách nguồn có thể thay đổi (thêm, xóa, cập nhật), việc phải chỉnh sửa lại Data Validation mỗi lần là không thực tế. Dynamic Named Ranges cho phép danh sách tự mở rộng hoặc thu hẹp dựa trên số lượng mục thực tế.
3.1. Sử dụng hàm OFFSET và COUNTA
Giả sử danh sách nguồn nằm ở Sheet2!A:A và có tiêu đề ở ô A1.
- Vào Formulas → Name Manager → New.
- Đặt tên:
GenderList. - Trong ô Refers to, nhập công thức:
excel =OFFSET(Sheet2!$A$2,0,0,COUNTA(Sheet2!$A:$A)-1,1)
OFFSETbắt đầu từ A2 (bỏ tiêu đề).COUNTA(Sheet2!$A:$A)-1đếm số mục thực tế, trừ tiêu đề.Kết quả là một dải ô có độ dài tự động.
Nhấn OK.
3.2. Áp dụng Named Range vào Data Validation
- Quay lại ô cần danh sách, mở Data Validation → Allow: List → Source:
=GenderList.
Khi bạn thêm một mục mới vào Sheet2!A (ví dụ Không xác định), danh sách sẽ tự động hiển thị mục mới mà không cần thay đổi Data Validation.
3.3. Sử dụng hàm TABLE (Excel Table)
Một cách hiện đại hơn là chuyển danh sách nguồn thành Table:
- Chọn danh sách nguồn, nhấn Ctrl + T → Create Table.
- Đặt tên cho Table, ví dụ
tblGender. - Khi tạo Data Validation, trong ô Source nhập:
=INDIRECT("tblGenderColumn1")(hoặc=tblGenderColumn1tùy phiên bản).
Table tự động mở rộng khi bạn thêm hàng mới, và Data Validation sẽ cập nhật ngay lập tức.
4. Sử dụng Combo Box (Form Controls) để tạo lựa chọn nâng cao
4.1. Khi nào nên dùng Combo Box?
- Khi bạn muốn tùy chỉnh giao diện (thay đổi kích thước, màu sắc, font).
- Khi cần liên kết với ô khác (ví dụ: khi chọn một mục, ô C2 tự động lấy giá trị tương ứng).
- Khi muốn sử dụng nhiều cột trong danh sách (đưa ra mô tả chi tiết hơn).
4.2. Tạo Combo Box (Form Controls)
- Vào Developer → Insert → Form Controls → Combo Box. (Nếu tab Developer chưa hiển thị, bật qua File → Options → Customize Ribbon → Developer).
- Kéo chuột để vẽ Combo Box vào vị trí mong muốn.
- Click chuột phải vào Combo Box → Format Control.
- Trong tab Control, thiết lập:
- Input range: phạm vi dữ liệu (ví dụ
Sheet2!$A$2:$A$10). - Cell link: ô sẽ nhận giá trị chỉ số (ví dụ
Sheet1!$D$2). - Drop down lines: số dòng hiển thị khi mở dropdown.
Drop down style:
0 – Drop down list(để không cho phép nhập tùy ý).Nhấn OK.
Khi người dùng chọn một mục, ô D2 sẽ chứa số thứ tự của mục (1,2,3…). Để lấy giá trị thực tế, bạn có thể dùng công thức:
=INDEX(Sheet2!$A$2:$A$10, D2)
4.3. Combo Box (ActiveX Controls)
ActiveX cung cấp khả năng tùy biến mạnh hơn (sự kiện Click, Change, v.v.) nhưng chỉ hoạt động tốt trên Windows và có thể gây lỗi khi mở trên các nền tảng khác.
- Vào Developer → Insert → ActiveX Controls → Combo Box.
- Vẽ lên sheet.
- Click chuột phải → Properties.
- ListFillRange:
Sheet2!$A$2:$A$10. - LinkedCell:
Sheet1!$E$2. - MatchEntry:
1 – fmMatchEntryComplete(để tự động hoàn thiện). - Đóng cửa sổ Properties, bật Design Mode để thoát.
ActiveX cho phép viết macro VBA để xử lý sự kiện ComboBox_Change, ví dụ:
Private Sub ComboBox1_Change() MsgBox "Bạn đã chọn: " & ComboBox1.Value
End Sub
4.4. Ưu nhược điểm
| Loại | Ưu điểm | Nhược điểm |
|---|---|---|
| Form Controls | Dễ dùng, không cần VBA, tương thích đa nền tảng | Hạn chế tùy biến giao diện, chỉ trả về chỉ số |
| ActiveX Controls | Tùy biến mạnh, hỗ trợ sự kiện, có thể trả về giá trị trực tiếp | Chỉ hoạt động trên Windows, có thể gặp lỗi bảo mật, cần bật macro |
5. Tạo danh sách lựa chọn phụ thuộc (Cascading Dropdown)
Trong nhiều trường hợp, bạn cần hai (hoặc nhiều) danh sách lựa chọn liên quan. Ví dụ: khi người dùng chọn một tỉnh, danh sách thành phố sẽ tự động lọc theo tỉnh đã chọn.
5.1. Cấu trúc dữ liệu
Giả sử:
- Sheet2 – Dữ liệu tỉnh và thành phố
- Cột A: Tỉnh (Ví dụ:
Hà Nội,Hồ Chí Minh) - Cột B: Thành phố (Ví dụ:
Ba Đình,Cầu Giấy, …)
Bạn sẽ tạo một Table cho mỗi tỉnh hoặc sử dụng named ranges riêng.
Cách 1: Sử dụng Table cho từng tỉnh
- Tạo một Table cho mỗi tỉnh, đặt tên
tblHN,tblHCM, … - Mỗi Table chỉ chứa danh sách các quận/huyện.
Cách 2: Sử dụng công thức FILTER (Excel 365/2026)
Nếu bạn dùng Excel 365, bạn có thể dùng hàm FILTER để tạo danh sách động mà không cần tạo nhiều Table.
5.2. Thực hiện với Data Validation và hàm INDIRECT

Có thể bạn quan tâm: Cách Tính Phần Trăm Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Bước 1: Tạo danh sách tỉnh
- Nhập các tỉnh vào Sheet2!A2:A5 (
Hà Nội,Hồ Chí Minh,Đà Nẵng,Cần Thơ). - Đặt tên cho phạm vi này: ProvinceList.
Bước 2: Tạo named ranges cho từng tỉnh
- Đối với mỗi tỉnh, tạo một named range chứa các thành phố tương ứng, đặt tên không có dấu cách (ví dụ
HaNoi,HoChiMinh). - Để tự động tạo, bạn có thể dùng công thức OFFSET kết hợp với SUBSTITUTE để loại bỏ dấu cách.
Ví dụ, vùng dữ liệu thành phố của Hà Nội nằm ở Sheet2!B2:B5. Đặt tên HaNoi cho phạm vi này.
Bước 3: Áp dụng Data Validation cho ô tỉnh
- Ô A2 (Sheet1) → Data Validation → List → Source:
=ProvinceList.
Bước 4: Áp dụng Data Validation cho ô thành phố (cấp phụ thuộc)
- Ô B2 (Sheet1) → Data Validation → List → Source:
excel =INDIRECT(SUBSTITUTE(A2," ",""))
Khi người dùng chọn Hà Nội ở A2, công thức INDIRECT(SUBSTITUTE(A2," ","")) sẽ chuyển thành HaNoi, trả về named range tương ứng và hiển thị danh sách thành phố.
5.3. Sử dụng hàm FILTER (Excel 365)
Nếu bạn không muốn tạo nhiều named range, có thể dùng công thức mảng:
- Ô A2: Chọn tỉnh (Data Validation như trên).
- Ô B2: Nhập công thức:
excel =IF(A2="","",SORT(UNIQUE(FILTER(Sheet2!B:B, Sheet2!A:A=A2))))
- Đánh dấu ô B2, rồi Data → Data Validation → List → Source:
=B2#(dấu#chỉ tới phạm vi động của công thức mảng).
Khi tỉnh thay đổi, công thức FILTER sẽ tự động cập nhật danh sách thành phố.
6. Bảo vệ và quản lý danh sách lựa chọn
6.1. Ngăn người dùng thay đổi danh sách nguồn
- Ẩn sheet chứa danh sách nguồn (right‑click → Hide).
- Protect Sheet: Vào Review → Protect Sheet, bỏ chọn Select unlocked cells, chỉ cho phép người dùng chỉnh sửa các ô cần thiết. Đánh dấu Locked cho các ô chứa danh sách nguồn để chúng không thể chỉnh sửa khi sheet được bảo vệ.
6.2. Sử dụng Data Validation để hiển thị thông báo
Bạn có thể thiết lập Input Message để hướng dẫn người dùng:
– Title: “Chọn giới tính”.
– Message: “Vui lòng chọn một trong các giá trị: Nam, Nữ, Khác”.
6.3. Kiểm tra lỗi dữ liệu (Error Checking)
Nếu người dùng dán dữ liệu từ nguồn khác, Excel sẽ hiển thị Error Alert nếu giá trị không nằm trong danh sách. Bạn có thể tùy chỉnh thông điệp để hướng dẫn sửa lỗi.
7. Kết hợp danh sách lựa chọn với Conditional Formatting
Bạn có thể làm cho bảng dữ liệu trở nên sinh động hơn bằng cách định dạng có điều kiện dựa trên giá trị được chọn.
7.1. Ví dụ: Đánh dấu màu theo giới tính
Giả sử cột B chứa danh sách giới tính (Nam, Nữ, Khác).
- Chọn phạm vi dữ liệu (ví dụ
B2:B100). - Vào Home → Conditional Formatting → New Rule → Use a formula to determine which cells to format.
- Nhập công thức:
excel =$B2="Nam"
- Đặt định dạng Fill màu xanh nhạt → OK.
- Lặp lại với các công thức
=$B2="Nữ"(màu hồng) và=$B2="Khác"(màu xám).
Khi người dùng thay đổi giá trị trong danh sách, màu nền sẽ tự động thay đổi.
7.2. Định dạng dựa trên nhiều tiêu chí
Bạn có thể sử dụng AND/OR để kết hợp:
=AND($B2="Nam",$C2>50)
Điều này sẽ chỉ áp dụng định dạng khi giới tính là Nam và giá trị ở cột C lớn hơn 50.
8. Tự động cập nhật danh sách từ Power Query
Khi dữ liệu nguồn nằm trong một tệp ngoài (CSV, database, web), bạn có thể kéo dữ liệu vào Power Query, sau đó tạo danh sách lựa chọn dựa trên kết quả truy vấn.
8.1. Các bước thực hiện
- Data → Get Data → From File → From Text/CSV (hoặc From Database, From Web).
- Thực hiện các bước Transform trong Power Query để lọc cột cần thiết.
- Nhấn Close & Load To… → Only Create Connection (không tải ra sheet).
- Vào Formulas → Name Manager → New và tạo named range dựa trên công thức:
excel =SORT(UNIQUE(QUERY_TABLEColumnName))
- Sử dụng named range này trong Data Validation như đã mô tả.
8.2. Lợi ích
- Dữ liệu luôn cập nhật khi nguồn thay đổi (refresh Power Query).
- Giảm dung lượng workbook vì không lưu trữ dữ liệu thô trong sheet.
- Khả năng làm sạch dữ liệu (loại bỏ trùng lặp, thay đổi định dạng) trước khi đưa vào danh sách.
9. Sử dụng VBA để tạo danh sách lựa chọn tùy chỉnh
Khi nhu cầu phức tạp (ví dụ: danh sách phải thay đổi dựa trên nhiều điều kiện, hoặc cần tạo danh sách ngay khi mở workbook), VBA là công cụ mạnh mẽ.
9.1. Ví dụ: Tự động tạo Data Validation dựa trên nội dung cột
Giả sử bạn có một bảng Products với các loại sản phẩm trong cột A. Khi người dùng chọn một loại, ô B sẽ hiển thị danh sách các mẫu tương ứng.
Sub CreateDynamicValidation() Dim ws As Worksheet Dim rngSource As Range Dim lastRow As Long Set ws = ThisWorkbook.Sheets("Sheet1") ' Xác định phạm vi nguồn (cột A) lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row Set rngSource = ws.Range("A2:A" & lastRow) ' Xóa Validation cũ ws.Range("B2:B" & lastRow).Validation.Delete ' Áp dụng Validation cho cột B With ws.Range("B2:B" & lastRow).Validation .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=OFFSET(Sheet2!$A$2,0,0,COUNTA(Sheet2!$A:$A)-1,1)" .IgnoreBlank = True .InCellDropdown = True .ShowInput = True .ShowError = True End With
End Sub
Bạn có thể gán macro này vào Workbook_Open để tự động chạy khi mở file.
9.2. Lưu ý khi sử dụng VBA
- Macro Security: Người dùng cần cho phép macro chạy (Trust Center).
- Tương thích: VBA không hoạt động trên Excel Online hoặc trên thiết bị di động.
- Bảo trì: Đảm bảo tài liệu có mô tả rõ ràng để người khác dễ hiểu và sửa đổi.
10. Các mẹo và thủ thuật nâng cao
| Mẹo | Mô tả |
|---|---|
| Sử dụng hàm CHOOSE với Data Validation | Khi danh sách chỉ có ít mục, bạn có thể dùng =CHOOSE({1,2,3},"A","B","C") trong Source. |
| Danh sách đa cột với Combo Box (ActiveX) | Đặt ColumnCount = 2 và BoundColumn = 2 để hiển thị 2 cột nhưng trả về giá trị ở cột 2. |
| Sử dụng hàm SORT và UNIQUE (Excel 365) | =SORT(UNIQUE(A2:A100)) để tạo danh sách không trùng và tự sắp xếp. |
| Đánh dấu ô đã chọn | Dùng Conditional Formatting với công thức =CELL("address")=$A$1 để làm nổi bật ô đang được chọn. |
| Tạo danh sách phụ thuộc từ nhiều sheet | Kết hợp hàm INDIRECT với CHOOSE để trả về named range dựa trên giá trị ô. |
| Sử dụng Data Validation cho ngày tháng | Source: =TEXT(TODAY(),"yyyy-mm-dd") hoặc dùng Date trong Allow để giới hạn phạm vi ngày. |
| Thêm “Other” tùy chọn | Trong danh sách, thêm mục “Khác”. Khi người dùng chọn, dùng VBA mở InputBox để nhập giá trị tùy chỉnh và thêm vào danh sách nguồn. |
11. Tổng kết
Việc tạo lựa chọn trong Excel không chỉ giúp giảm thiểu lỗi nhập liệu mà còn nâng cao tính tương tác và chuyên nghiệp của các bảng tính. Từ cách đơn giản nhất—sử dụng Data Validation—đến các giải pháp phức tạp hơn như Combo Box, Cascading Dropdown, Dynamic Named Ranges, Power Query, và VBA, bạn có thể lựa chọn phương pháp phù hợp với nhu cầu và môi trường làm việc của mình.
Các bước quan trọng cần nhớ:
- Xác định nguồn dữ liệu: Luôn để nguồn danh sách ở vị trí cố định, có thể ẩn hoặc bảo vệ.
- Sử dụng Named Ranges hoặc Table để danh sách có thể mở rộng tự động.
- Áp dụng Data Validation cho các ô cần lựa chọn và tùy chỉnh thông báo lỗi để hướng dẫn người dùng.
- Kết hợp với Conditional Formatting để làm nổi bật dữ liệu dựa trên lựa chọn.
- Nếu cần đa cột hoặc tương tác phức tạp, sử dụng Combo Box (Form Controls hoặc ActiveX).
- Đối với danh sách phụ thuộc, áp dụng hàm INDIRECT hoặc FILTER để tạo cascading dropdown.
- Bảo vệ danh sách nguồn bằng cách ẩn sheet, lock cells và protect sheet.
- Kết nối với Power Query để danh sách luôn cập nhật từ nguồn dữ liệu bên ngoài.
- Sử dụng VBA khi cần tự động hoá, xử lý nhiều điều kiện, hoặc tạo danh sách khi mở workbook.
Bằng cách áp dụng những kiến thức và kỹ thuật trên, bạn sẽ có thể tự tin xây dựng các biểu mẫu, báo cáo và bảng dữ liệu chuyên nghiệp, đồng thời tối ưu hoá quy trình làm việc trong môi trường Excel. Hãy thử nghiệm từng phương pháp, kết hợp chúng lại và tùy chỉnh sao cho phù hợp nhất với dự án của bạn. Chúc bạn thành công!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
