Tạo Drop-down list có giá trị phụ thuộc một list khác

Bài này sẽ giới thiệu cho bạn cách tạo drop-down list với giá trị phụ thuộc vào 1 drop-down list đã tạo trước đó, chúng ta sẽ đi vào chi tiết bằng ví dụ dưới đây:

Ta có 1 drop-down list như hình dưới (xem lại cách tạo ở đây)

Drop-down list ở ô E1 hiển thị giá trị phụ thuộc vào giá trị của ô B1, ví dụ khi chọn Pizza ở ô B1, ô E1 chỉ xuất hiện 1 list các tên liên quan đến Pizza

Để tạo được 1 drop list như vậy, thực hiện tuần tự theo các bước sau

1. Đặt tên cho các vùng dữ liệu 

Ở sheet2, đặt tên cho các vùng dữ liệu như sau:

untitled2

Chú ý: Tên cho dữ liệu ở vùng B1:B4, C1:C2, D1:D3 phải hoàn toàn giống với tên danh mục trong bảng Food (Pizza, Pancakes, Chinese)

2. Tạo drop-down list thứ 1

Tại ô B1, chọn Data Validation trong tab Data

Hộp thoại Data Validation sẽ xuất hiện như hình dưới. Tại mục Allow chọn List, tại mục Source nhập tên Food

Click OK và ta có hình dưới

3. Tạo drop-down list phụ thuộc

Làm tương tự như trên, tuy nhiên tại ô Soure chúng ta sẽ sử dụng hàm Indirect: =INDIRECT($B$1).

Click Ok, và ta có 1 drop-down list với giá trị phụ thuộc vào giá trị của ô B1

Giải thích: Hàm INDIRECT trả về giá trị cell tham chiếu có trong một chuỗi văn bản. Ví dụ, khi chọn “Chinese” từ drop-down list đầu tiên, lệnh =INDIRECT($B$1)  trả về giá trị trong vùng dữ liệu có tên là “Chinese”, kết quả là drop-down list ở ô E1 hiển thị các mục về Chinese.

Đặt tên bảng 2 chữ cái trở lên?

Trong thực tế, bạn có thể gặp vấn đề khi đặt tên cho bảng trong trường hợp drop-down list thứ 1 có chứa 1 ô có 2 chữ cái trở lên. Ví dụ từ “Chinese Food” trong ô B3, khi đó ô D1:D3 không thể đặt tên thành “Chinese Food” (sẽ báo lỗi):

untitled3

Lỗi này sẽ được xử lý một cách khá đơn giản, thay vì đặt tên D1:D3 là “Chinese Food”, hãy ghép lại thành 1 từ “ChineseFood”

untitled4

Sau đó tại mục Source trong hộp thoại Data Validation, dùng hàm Substitute để loại bỏ dấu cách trong ô B1

untitled5

Click Ok và vấn đề đã được xử lý

 

 

Comments ( 3 )

  1. / ReplyKhoa Ho
    Làm thế nào để apply drop list cho nhiều dòng được vậy? Tôi có 300 dòng cần tạo droplist phụ thuộc vào một list khác, tuy nhiên phải đi nhập data validation từng dòng mới chạy được!! Thanks.
    • / ReplyTrần Thị Kim Thu
      tôi cũng bị trường hợp tương tự :( có cách gì nhập cho những row còn lại ko ạ? nếu chọn ở row đầu tiên thì các row sau nó cũng chỉ hiện đúng 1 list vs ĐK ở row 1
  2. / ReplyTuấn
    tôi muốn tạo 1 drop list cho (táo) thì 3 cột sau:(giá bán lẻ),(giá bán buôn) đã trả về đúng kết quả nhưng còn cột (thùng/kg) báo lỗi,tôi dùng cùng công thức:=if(i5="","",vlookup(i5,'DM hoa quả'!,a$5$:g$30$,5,0)),không hiển thị kết quả,,tôi không hiểu có phải do lỗi định dạng ko,xin hỏi?????

Gửi nhận xét