- Tham gia
- 16/3/07
- Bài viết
- 2,104
- Được thích
- 19,173
- Giới tính
- Nam
Chiêu thứ 25: Tạo một danh sách xác thực thay đổi theo sự lựa chọn từ một danh sách khác
Trước tiên, chúng ta cần chuẩn bị một số dữ liệu để thực hành bài này. Bạn hãy tạo một sheet mới và đặt tên là List và tại ô A1 nhập vào tiêu đề "Objectsâ€. Tại ô B1 nhập vào tiêu đề "Corresponding Listâ€. Vùng A2:A5 bạn nhập vào từ "Canâ€. Vùng A2:A9 nhập vào từ "Sofaâ€. Vùng A10:A13 nhập vào từ "Showerâ€. Vùng A14:A17 nhập vào từ "Carâ€. Sau đó, trong vùng B2:B17 bạn nhập vào các từ sau: Tin, Steel, Opener, Lid, Bed, Seat, Lounge, Cushion, Rain, Hot, Cold, Warm, Trip, Journey, Bonnet, và Boot.
Tại ô C1 nhập vào tiêu đề "Validation Listâ€. Kế đó, bạn nhập vào các từ sau tại các ô C2:C5: Can, Sofa, Shower và Car. Đây là danh sách chứa các từ duy nhất từ vùng A2:A17.
Bước tiếp theo là chúng ta sẽ định nghĩa một số Name cho các List trên. Bạn vào Formulas âžâž Name Manager âž chọn New (E2003: Insert âž Name âž Define). Trong hộp Name bạn nhập vào từ "Objectsâ€. Tại hộp Refer To bạn nhập vào công thức sau: Define Names
=OFFSET($A$2,0,0,COUNTA($A$2:$A$20),1)
Nhấn nút OK sau khi nhập xong công thức trên. Tiếp theo, bạn nhấn New (E2003: nhấn Add) để tạo Name mới. Trong hộp Name nhập vào tên là "ValList†và tại Refer To nhập vào =$C$2:$C$5. Nhấn Close để đóng hộp thoại lại.
Bạn chèn thêm một sheet mới có tên là "Sheet1â€. Bạn vào Formular âž chọn Define Names âžManager âž chọn New (E2003: Insert âž Name âž Define). Trong hộp Name bạn nhập vào "CorrespondingList†và tại Refer To nhập vào công thức sau: Name
=OFFSET(INDIRECT(ADDRESS(MATCH(Val1Cell,Objects,0)+1,2,,,"Lists")),0,0,COUNTIF(Objects,Val1Cell),1)
Tiếp tục nhấn New (hoặc Add trong Excel 2003) để thêm Name mới. Trong hộp Name bạn đặt tên là Val1Cell và tại Refer To nhập vào =$D$6 và nhấn OK.
Tiếp tục nhấn New để thêm Name mới với tên là Val2Cell và Refer To là =$E$6 nhấn OK sau khi hoàn tất.
Các Name mà bạn đã tạo như hình sau:
Chúng ta đã chuẩn bị xong các thứ cần thiết, bây giờ đã đến lúc áp dụng chức năng Data Validation. Bạn chọn ô $D$6 trên Sheet1, sau đó vào ngăn Data âž tại nhóm Data Tools bạn chọn Data Validation âž chọn ngăn Settings trong hộp thoại Data Validatin (E2003: Data âž Validation âž Settings). Bạn chọn loại List tại hộp Allow và tại hộp Source nhập vào =ValList, đánh dấu chọn In-cell dropdown, sau đó nhấn OK để hoàn tất.
Chọn ô E6, sau đó vào ngăn settings trong hộp thoại Data Validation như trên. Bạn chọn List tại Allow và nhập vào =CorrespondingList tại hộp Source, đánh dấu chọn vào In-cell dropdown và nhấn OK để hoàn tất.
Một số bài viết có liên quan:
1/ Chiêu số 24: Dùng nhiều List cho 1 Combobox
2/ Chiêu số 23: Bật, tắt chức năng Conditional Formatting bằng 1 checkbox
3/ Chiêu thứ 22: Tạo hiệu ứng 3D trong các bảng tính hay các ô
4/ Chiêu thứ 21: Tô màu dòng xen kẽ
5/ Chiêu thứ 20: Đếm hoặc cộng những ô đã được định dạng có điều kiện
6/ Chiêu số 19: Đánh dấu những ô chứa công thức bằng Conditional Formatting
7/ Chiêu số 18: Điều khiển Conditional Formating bằng checkbox
8/ Chiêu thứ 17: Sử dụng Data-Validation khi danh sách nguồn nằm trong một Sheet khác (Excel <2010)
9/ Chiêu thứ 16: Cứu dữ liệu từ một bảng tính bị lỗi
10/ Chiêu thứ 15: Giảm kích thước file Excel bị phình to bất thường
http://www.giaiphapexcel.com/vbb/content.php?309
Trước tiên, chúng ta cần chuẩn bị một số dữ liệu để thực hành bài này. Bạn hãy tạo một sheet mới và đặt tên là List và tại ô A1 nhập vào tiêu đề "Objectsâ€. Tại ô B1 nhập vào tiêu đề "Corresponding Listâ€. Vùng A2:A5 bạn nhập vào từ "Canâ€. Vùng A2:A9 nhập vào từ "Sofaâ€. Vùng A10:A13 nhập vào từ "Showerâ€. Vùng A14:A17 nhập vào từ "Carâ€. Sau đó, trong vùng B2:B17 bạn nhập vào các từ sau: Tin, Steel, Opener, Lid, Bed, Seat, Lounge, Cushion, Rain, Hot, Cold, Warm, Trip, Journey, Bonnet, và Boot.
Tại ô C1 nhập vào tiêu đề "Validation Listâ€. Kế đó, bạn nhập vào các từ sau tại các ô C2:C5: Can, Sofa, Shower và Car. Đây là danh sách chứa các từ duy nhất từ vùng A2:A17.
Bạn có thể dùng chứa năng Advanced Filter để lọc ra danh sách duy nhất này bằng cách chọn vùng A2:A17 âž Data âž Sort & Filter âž Advanced (E2003: Data âž Filter âžâž chọn Unique Records Only âž chọn Filter the List in Place âž OK. Sau đó chép danh sách kết quả lọc duy nhất và dán vào vùng C2:C5. Advanced Filter)
Sau khi nhập xong bạn có danh sách như hình sau:

Bước tiếp theo là chúng ta sẽ định nghĩa một số Name cho các List trên. Bạn vào Formulas âžâž Name Manager âž chọn New (E2003: Insert âž Name âž Define). Trong hộp Name bạn nhập vào từ "Objectsâ€. Tại hộp Refer To bạn nhập vào công thức sau: Define Names
=OFFSET($A$2,0,0,COUNTA($A$2:$A$20),1)
Nhấn nút OK sau khi nhập xong công thức trên. Tiếp theo, bạn nhấn New (E2003: nhấn Add) để tạo Name mới. Trong hộp Name nhập vào tên là "ValList†và tại Refer To nhập vào =$C$2:$C$5. Nhấn Close để đóng hộp thoại lại.
Bạn chèn thêm một sheet mới có tên là "Sheet1â€. Bạn vào Formular âž chọn Define Names âžManager âž chọn New (E2003: Insert âž Name âž Define). Trong hộp Name bạn nhập vào "CorrespondingList†và tại Refer To nhập vào công thức sau: Name
=OFFSET(INDIRECT(ADDRESS(MATCH(Val1Cell,Objects,0)+1,2,,,"Lists")),0,0,COUNTIF(Objects,Val1Cell),1)
Tiếp tục nhấn New (hoặc Add trong Excel 2003) để thêm Name mới. Trong hộp Name bạn đặt tên là Val1Cell và tại Refer To nhập vào =$D$6 và nhấn OK.
Tiếp tục nhấn New để thêm Name mới với tên là Val2Cell và Refer To là =$E$6 nhấn OK sau khi hoàn tất.
Các Name mà bạn đã tạo như hình sau:

Chúng ta đã chuẩn bị xong các thứ cần thiết, bây giờ đã đến lúc áp dụng chức năng Data Validation. Bạn chọn ô $D$6 trên Sheet1, sau đó vào ngăn Data âž tại nhóm Data Tools bạn chọn Data Validation âž chọn ngăn Settings trong hộp thoại Data Validatin (E2003: Data âž Validation âž Settings). Bạn chọn loại List tại hộp Allow và tại hộp Source nhập vào =ValList, đánh dấu chọn In-cell dropdown, sau đó nhấn OK để hoàn tất.

Chọn ô E6, sau đó vào ngăn settings trong hộp thoại Data Validation như trên. Bạn chọn List tại Allow và nhập vào =CorrespondingList tại hộp Source, đánh dấu chọn vào In-cell dropdown và nhấn OK để hoàn tất.
Trong quá trình thiết lập Data Validation cho ô E6, bạn sẽ nhận được thông báo lỗi "The source currently evaluates to an error. Do you want to continue?â€. Bạn hãy chọn Yes. Lỗi này xuất hiện là do ô D6 đang rỗng.
Bạn thử chọn một tên trong danh sách tại ô D6 và xem sự thay đổi tương ứng trong danh sách tại ô E6 như hình minh họa sau:

Một số bài viết có liên quan:
1/ Chiêu số 24: Dùng nhiều List cho 1 Combobox
2/ Chiêu số 23: Bật, tắt chức năng Conditional Formatting bằng 1 checkbox
3/ Chiêu thứ 22: Tạo hiệu ứng 3D trong các bảng tính hay các ô
4/ Chiêu thứ 21: Tô màu dòng xen kẽ
5/ Chiêu thứ 20: Đếm hoặc cộng những ô đã được định dạng có điều kiện
6/ Chiêu số 19: Đánh dấu những ô chứa công thức bằng Conditional Formatting
7/ Chiêu số 18: Điều khiển Conditional Formating bằng checkbox
8/ Chiêu thứ 17: Sử dụng Data-Validation khi danh sách nguồn nằm trong một Sheet khác (Excel <2010)
9/ Chiêu thứ 16: Cứu dữ liệu từ một bảng tính bị lỗi
10/ Chiêu thứ 15: Giảm kích thước file Excel bị phình to bất thường
http://www.giaiphapexcel.com/vbb/content.php?309
Upvote
0