Cách tạo danh sách thả xuống phụ thuộc (xếp tầng) trong Excel

  • Chia Sẻ Cái Này
Michael Brown

Cách đây không lâu, chúng ta đã bắt đầu khám phá các khả năng của Xác thực dữ liệu Excel và tìm hiểu cách tạo danh sách thả xuống đơn giản trong Excel dựa trên danh sách được phân tách bằng dấu phẩy, phạm vi ô hoặc phạm vi được đặt tên.

Hôm nay, chúng ta sẽ tìm hiểu sâu về tính năng này và tìm hiểu cách tạo danh sách thả xuống xếp tầng hiển thị các lựa chọn tùy thuộc vào giá trị được chọn trong danh sách thả xuống đầu tiên. Nói cách khác, chúng ta sẽ tạo một danh sách xác thực dữ liệu Excel dựa trên giá trị của một danh sách khác.

    Cách tạo nhiều danh sách thả xuống phụ thuộc trong Excel

    Tạo nhiều danh sách thả xuống phụ thuộc cấp độ trong Excel thật dễ dàng. Tất cả những gì bạn cần là một vài phạm vi được đặt tên và công thức GIÁN TIẾP. Phương pháp này hoạt động với tất cả các phiên bản Excel 365 - 2010 trở về trước.

    1. Nhập các mục cho danh sách thả xuống

    Trước hết, hãy nhập các mục bạn muốn xuất hiện trong danh sách thả xuống, mỗi danh sách trong một cột riêng biệt. Ví dụ: tôi đang tạo danh sách thả xuống xếp tầng các nhà xuất khẩu trái cây và cột A trong trang nguồn của tôi ( Trái cây ) bao gồm các mục của danh sách thả xuống đầu tiên và 3 cột khác liệt kê các mục cho danh sách thả xuống phụ thuộc.

    2. Tạo phạm vi đã đặt tên

    Bây giờ, bạn cần tạo tên cho danh sách chính của mình và cho từng danh sách phụ thuộc. Bạn có thể thực hiện việc này bằng cách thêm tên mới vào cửa sổ Trình quản lý tên (tab Công thức > Trình quản lý tên > Mới) hoặc nhậpsign) và tham chiếu hàng tuyệt đối (với $) như = Sheet2!B$1.

    Kết quả là danh sách thả xuống phụ thuộc của B1 sẽ xuất hiện trong ô B2; Trình đơn thả xuống phụ thuộc của C1 sẽ hiển thị trong C2, v.v.

    Và nếu bạn định sao chép trình đơn thả xuống sang hàng khác (tức là xuống dưới cột), sau đó sử dụng tọa độ cột tuyệt đối (có $) và hàng tương đối (không có $) như = Sheet2!$B1.

    Để sao chép một ô thả xuống trong bất kỳ hướng, sử dụng tham chiếu tương đối (không có dấu $) như = Sheet2!B1.

    2.3. Tạo tên để truy xuất các mục của menu phụ thuộc

    Thay vì đặt tên duy nhất cho từng danh sách phụ thuộc như chúng ta đã làm trong ví dụ trước, chúng ta sẽ tạo một công thức có tên không được gán cho bất kỳ ô cụ thể nào hoặc một dải ô. Nó sẽ truy xuất danh sách chính xác các mục cho danh sách thả xuống thứ hai tùy thuộc vào lựa chọn nào được thực hiện trong danh sách thả xuống đầu tiên. Lợi ích chính của việc sử dụng công thức này là bạn sẽ không phải tạo tên mới khi thêm các mục nhập mới vào danh sách thả xuống đầu tiên - một công thức được đặt tên bao gồm tất cả chúng.

    Bạn tạo một tên Excel mới với công thức này:

    =INDEX(exporters_tbl,,MATCH(fruit,fruit_list,0))

    Trong đó:

    • exporters_tbl - tên của bảng (được tạo ở bước 1);
    • fruit - tên của ô chứa danh sách thả xuống đầu tiên (được tạo ở bước 2.2);
    • fruit_list - tên tham chiếu đến hàng tiêu đề của bảng (được tạo trongbước 2.1).

    Tôi đã đặt tên cho nó là exporters_list , như bạn thấy trong ảnh chụp màn hình bên dưới.

    Vâng , bạn đã hoàn thành phần chính của công việc! Trước khi đến bước cuối cùng, bạn nên mở Trình quản lý tên ( Ctrl + F3 ) và xác minh tên cũng như tham chiếu:

    3. Thiết lập Xác thực dữ liệu Excel

    Đây thực sự là phần dễ nhất. Với hai công thức đã đặt tên, bạn thiết lập Xác thực dữ liệu theo cách thông thường ( Thẻ Dữ liệu > Xác thực dữ liệu ).

    • Lần ​​đầu tiên danh sách thả xuống, trong hộp Nguồn, hãy nhập =fruit_list (tên được tạo ở bước 2.1).
    • Đối với danh sách thả xuống phụ thuộc, hãy nhập =exporters_list (tên được tạo ở bước 2.3).

    Hoàn tất! Trình đơn thả xuống xếp tầng động của bạn đã hoàn tất và sẽ cập nhật tự động phản ánh những thay đổi bạn đã thực hiện đối với bảng nguồn.

    Trình đơn thả xuống Excel động này, hoàn hảo ở mọi khía cạnh khác , có một thiếu sót - nếu các cột trong bảng nguồn của bạn chứa một số lượng mục khác nhau, các hàng trống sẽ xuất hiện trong menu của bạn như sau:

    Loại trừ các hàng trống khỏi danh sách thả xuống xếp tầng động

    Nếu bạn muốn xóa bất kỳ dòng trống nào trong hộp thả xuống của mình, bạn sẽ phải tiến thêm một bước và cải thiện công thức INDEX / MATCH được sử dụng để tạo danh sách thả xuống động phụ thuộc.

    Ý tưởng là sử dụng2 Hàm INDEX, trong đó hàm đầu tiên lấy ô phía trên bên trái và hàm thứ hai trả về ô phía dưới bên phải của dải ô hoặc hàm OFFSET với INDEX và COUNTA lồng nhau. Các bước chi tiết như sau:

    1. Tạo hai tên bổ sung

    Để không làm cho công thức trở nên quá cồng kềnh, trước tiên hãy tạo một vài tên trợ giúp với các công thức đơn giản sau:

    • Tên gọi là col_num để tham chiếu số cột đã chọn:

      =MATCH(fruit,fruit_list,0)

    • Tên gọi là entire_col để tham chiếu cột đã chọn (không phải số của cột mà là toàn bộ cột):

      =INDEX(exporters_tbl,,col_num)

    Trong các công thức trên, exporters_tbl là tên bảng nguồn của bạn, fruit là tên của ô chứa menu thả xuống đầu tiên và fruit_list là tên tham chiếu đến hàng tiêu đề của bảng.

    2. Tạo tham chiếu được đặt tên cho danh sách thả xuống phụ thuộc

    Tiếp theo, sử dụng một trong các công thức bên dưới để tạo tên mới (hãy gọi tên đó là exporters_list2 ) để sử dụng với danh sách thả xuống phụ thuộc:

    =INDEX(exporters_tbl,1,col_num) : INDEX(exporters_tbl, COUNTA(entire_col), col_num)

    =OFFSET(INDEX(exporters_tbl,1,col_num),0,0,COUNTA(entire_col))

    3. Áp dụng Xác thực Dữ liệu

    Cuối cùng, hãy chọn ô chứa trình đơn thả xuống phụ thuộc và áp dụng Xác thực Dữ liệu bằng cách nhập = exports_list2 (tên đã tạo ở bước trước) vào Nguồn hộp.

    Ảnh chụp màn hình bên dưới hiển thị menu thả xuống động kết quả trong Excel nơi tất cả các dòng trống đều biến mất!

    Lưu ý. Khi làm việc với danh sách thả xuống xếp tầng độngđược tạo bằng các công thức trên, không có gì ngăn cản người dùng thay đổi giá trị trong danh sách thả xuống đầu tiên sau khi thực hiện lựa chọn trong menu thứ hai, do đó, các lựa chọn trong danh sách thả xuống chính và phụ có thể không khớp. Bạn có thể chặn các thay đổi trong hộp đầu tiên sau khi lựa chọn được thực hiện trong hộp thứ hai bằng cách sử dụng VBA hoặc các công thức phức tạp được đề xuất trong hướng dẫn này.

    Đây là cách bạn tạo danh sách xác thực dữ liệu Excel dựa trên các giá trị của một danh sách khác. Vui lòng tải xuống sổ làm việc mẫu của chúng tôi để xem danh sách thả xuống xếp tầng đang hoạt động. Cảm ơn bạn đã đọc!

    Sách bài tập thực hành để tải xuống

    Mẫu thả xuống xếp tầng 1 - phiên bản dễ dàng

    Mẫu thả xuống xếp tầng 2 - phiên bản nâng cao không có khoảng trống

    tên trực tiếp trong Hộp Tên.

    Lưu ý. Xin lưu ý rằng nếu hàng đầu tiên của bạn là loại tiêu đề cột như bạn thấy trong ảnh chụp màn hình ở trên, thì bạn sẽ không đưa nó vào phạm vi đã đặt tên.

    Để biết hướng dẫn chi tiết từng bước, vui lòng xem Cách xác định tên trong Excel.

    Những điều cần nhớ:

    1. Các mục cần xuất hiện trong danh sách thả xuống đầu tiên phải là các mục nhập một từ, ví dụ: , Xoài , Cam . Nếu bạn có các mục gồm hai, ba từ trở lên, vui lòng xem Cách tạo danh sách thả xuống xếp tầng với các mục nhập nhiều từ.
    2. Tên của danh sách phụ thuộc phải giống hoàn toàn với mục nhập phù hợp trong chính danh sách. Ví dụ: danh sách phụ thuộc sẽ được hiển thị khi " Mango " được chọn từ danh sách thả xuống đầu tiên phải được đặt tên là Mango .

    Khi hoàn tất , bạn có thể muốn nhấn Ctrl+F3 để mở cửa sổ Trình quản lý tên và kiểm tra xem tất cả các danh sách có tên và tham chiếu chính xác hay không.

    3 . Tạo danh sách thả xuống (chính) đầu tiên

    1. Trong cùng một bảng tính hoặc trong một bảng tính khác, hãy chọn một ô hoặc nhiều ô mà bạn muốn danh sách thả xuống chính của mình xuất hiện.
    2. Chuyển đến tab Dữ liệu , nhấp vào Xác thực dữ liệu và thiết lập danh sách thả xuống dựa trên phạm vi đã đặt tên theo cách thông thường bằng cách chọn Danh sách bên dưới Cho phép và nhập tên phạm vi vàoHộp Nguồn .

    Để biết các bước chi tiết, vui lòng xem Tạo danh sách thả xuống dựa trên dải ô đã đặt tên.

    Kết quả là bạn sẽ có một menu thả xuống trong trang tính của mình tương tự như sau:

    4. Tạo danh sách thả xuống phụ thuộc

    Chọn (các) ô cho menu thả xuống phụ thuộc của bạn và áp dụng lại Xác thực dữ liệu Excel như được mô tả trong bước trước. Nhưng lần này, thay vì tên của dải ô, bạn nhập công thức sau vào trường Nguồn :

    =INDIRECT(A2)

    Trong đó A2 là ô có tên đầu tiên (chính) của bạn danh sách thả xuống.

    Nếu ô A2 hiện đang trống, bạn sẽ nhận được thông báo lỗi " Nguồn hiện đánh giá là có lỗi. Bạn có muốn tiếp tục không ? "

    Nhấp an toàn vào và ngay khi bạn chọn một mục từ menu thả xuống đầu tiên, bạn sẽ thấy các mục tương ứng với mục đó trong mục thứ hai, phụ thuộc vào , danh sách thả xuống.

    5. Thêm danh sách thả xuống phụ thuộc thứ ba (tùy chọn)

    Nếu cần, bạn có thể thêm danh sách thả xuống xếp tầng thứ 3 phụ thuộc vào lựa chọn trong menu thả xuống thứ 2 hoặc vào lựa chọn trong menu thứ nhất hai danh sách thả xuống.

    Thiết lập danh sách thả xuống thứ 3 phụ thuộc vào danh sách thứ 2

    Bạn có thể tạo loại danh sách thả xuống này theo cách tương tự như chúng tôi vừa tạo danh sách thả xuống phụ thuộc thứ hai trình đơn xuống. Chỉ cần nhớ 2 điều quan trọng đã thảo luận ở trên, điều này rất cần thiết chocông việc chính xác của danh sách thả xuống xếp tầng của bạn.

    Ví dụ: nếu bạn muốn hiển thị danh sách các khu vực trong cột C tùy thuộc vào quốc gia được chọn trong cột B, bạn tạo một danh sách các khu vực cho từng khu vực quốc gia và đặt tên theo tên quốc gia, chính xác như quốc gia xuất hiện trong danh sách thả xuống thứ hai. Ví dụ: danh sách các khu vực của Ấn Độ phải được đặt tên là "Ấn Độ", danh sách các khu vực của Trung Quốc - "Trung Quốc", v.v.

    Sau đó, bạn chọn một ô cho danh sách thả xuống thứ 3 (C2 trong case) và áp dụng Xác thực dữ liệu Excel với công thức sau (B2 là ô có menu thả xuống thứ hai chứa danh sách các quốc gia):

    =INDIRECT(B2)

    Bây giờ, mỗi khi bạn chọn Ấn Độ trong danh sách các quốc gia ở cột B, bạn sẽ có các lựa chọn sau trong trình đơn thả xuống thứ ba:

    Lưu ý. Danh sách các khu vực được hiển thị là duy nhất cho mỗi quốc gia nhưng nó không phụ thuộc vào lựa chọn trong danh sách thả xuống đầu tiên.

    Tạo menu thả xuống thứ ba phụ thuộc vào hai danh sách đầu tiên

    Nếu bạn cần tạo menu thả xuống xếp tầng phụ thuộc vào các lựa chọn trong cả danh sách thả xuống thứ nhất và thứ hai, hãy tiếp tục theo cách này :

    1. Tạo các nhóm phạm vi được đặt tên bổ sung và đặt tên cho chúng theo các tổ hợp từ trong hai danh sách thả xuống đầu tiên của bạn. Ví dụ: bạn có Xoài, Cam, v.v. trong danh sách đầu tiên và Ấn Độ, Brazil, v.v. trong danh sách thứ 2.Sau đó, bạn tạo các phạm vi được đặt tên MangoIndia , MangoBrazil , OrangesIndia , OrangesBrazil , v.v. Những tên này không được chứa dấu gạch dưới hoặc bất kỳ ký tự bổ sung nào khác .

  • Áp dụng Xác thực dữ liệu Excel với công thức INDIRECT SUBSTITUTE nối tên của các mục nhập trong hai cột đầu tiên và xóa khoảng trắng khỏi tên. Ví dụ: trong ô C2, công thức xác thực dữ liệu sẽ là:
  • =INDIRECT(SUBSTITUTE(A2&B2," ",""))

    Trong đó A2 và B2 lần lượt chứa danh sách thả xuống thứ nhất và thứ hai.

    Kết quả là, danh sách thả xuống thứ 3 của bạn -Danh sách xuống sẽ hiển thị các vùng tương ứng với Trái cây Quốc gia được chọn trong 2 danh sách thả xuống đầu tiên.

    Đây là cách dễ nhất để tạo hộp thả xuống xếp tầng trong Excel. Tuy nhiên, phương pháp này có một số hạn chế.

    Hạn chế của phương pháp này:

    1. Các mục trong danh sách thả xuống chính của bạn phải là một từ mục. Xem cách tạo danh sách thả xuống xếp tầng với các mục nhập nhiều từ.
    2. Phương pháp này sẽ không hoạt động nếu các mục nhập trong danh sách thả xuống chính của bạn chứa các ký tự không được phép trong tên dải ô, chẳng hạn như dấu gạch ngang ( -), dấu và (&), v.v. Giải pháp là tạo danh sách thả xuống xếp tầng động không có hạn chế này.
    3. Menu thả xuống được tạo theo cách này không được cập nhật tự động, tức là bạn sẽ phải thay đổi phạm vi được đặt tên'tài liệu tham khảo mỗi khi bạn thêm hoặc xóa các mục trong danh sách nguồn. Để khắc phục hạn chế này, hãy thử tạo danh sách thả xuống xếp tầng động.

    Tạo danh sách thả xuống xếp tầng với các mục nhập nhiều từ

    Các công thức GIÁN TIẾP mà chúng tôi đã sử dụng trong ví dụ ở trên chỉ có thể xử lý các mục một từ. Ví dụ: công thức =INDIRECT(A2) tham chiếu gián tiếp đến ô A2 và hiển thị chính xác dải ô đã đặt tên có cùng tên như trong ô được tham chiếu. Tuy nhiên, không được phép sử dụng dấu cách trong tên Excel, đó là lý do tại sao công thức này không hoạt động với tên nhiều từ.

    Giải pháp là sử dụng hàm INDIRECT kết hợp với SUBSTITUTE như chúng ta đã làm khi tạo tên thứ ba menu thả xuống.

    Giả sử bạn có Dưa hấu trong số các sản phẩm. Trong trường hợp này, bạn đặt tên cho danh sách các nhà xuất khẩu dưa hấu bằng một từ không có dấu cách - Dưa hấu .

    Sau đó, đối với danh sách thả xuống thứ hai, hãy áp dụng Xác thực dữ liệu Excel bằng công thức sau để loại bỏ khoảng cách từ tên trong ô A2:

    =INDIRECT(SUBSTITUTE(A2," ",""))

    Cách ngăn các thay đổi trong danh sách thả xuống chính

    Hãy tưởng tượng tình huống sau . Người dùng của bạn đã thực hiện các lựa chọn trong tất cả các danh sách thả xuống, sau đó họ đổi ý, quay lại danh sách đầu tiên và chọn một mục khác. Kết quả là, lựa chọn thứ 1 và thứ 2 không khớp. Để ngăn điều này xảy ra, bạn có thể chặn bất kỳ thay đổi nào trong lần thả đầu tiên.danh sách xuống ngay khi lựa chọn được thực hiện trong danh sách thứ hai.

    Để làm điều này, khi tạo danh sách thả xuống đầu tiên, hãy sử dụng một công thức đặc biệt sẽ kiểm tra xem có bất kỳ mục nhập nào được chọn trong menu thả xuống thứ hai hay không:

    =IF(B2="", Fruit, INDIRECT("FakeList"))

    Trong đó B2 chứa menu thả xuống thứ hai, " Fruit " là tên của danh sách xuất hiện trong menu thả xuống đầu tiên và " FakeList " là bất kỳ tên giả nào không tồn tại.

    Bây giờ, nếu bất kỳ mục nào được chọn trong danh sách thả xuống thứ 2, sẽ không có lựa chọn nào khi người dùng nhấp vào mũi tên bên cạnh danh sách đầu tiên.

    Tạo danh sách thả xuống xếp tầng động trong Excel

    Ưu điểm chính của danh sách thả xuống phụ thuộc vào Excel động là bạn có thể tự do chỉnh sửa danh sách nguồn và hộp thả xuống của bạn sẽ được cập nhật nhanh chóng. Tất nhiên, việc tạo danh sách thả xuống động cần thêm một chút thời gian và các công thức phức tạp hơn, nhưng tôi tin rằng đây là một khoản đầu tư xứng đáng vì sau khi được thiết lập, các menu thả xuống như vậy thực sự rất thú vị khi làm việc.

    Cũng giống như hầu hết bất cứ thứ gì trong Excel, bạn có thể đạt được kết quả tương tự theo nhiều cách. Cụ thể, bạn có thể tạo danh sách thả xuống động bằng cách sử dụng kết hợp các hàm OFFSET, INDIRECT và COUNTA hoặc công thức INDEX MATCH linh hoạt hơn. Cách thứ hai là cách ưa thích của tôi vì nó mang lại nhiều lợi thế, trong đó quan trọng nhất là:

    1. Bạn chỉ phải tạo 3 dải ô được đặt tên, bất kể cách nàonhiều mục có trong danh sách chính và danh sách phụ.
    2. Danh sách của bạn có thể chứa các mục nhiều từ và bất kỳ ký tự đặc biệt nào.
    3. Số lượng mục có thể khác nhau trong mỗi cột.
    4. Thứ tự sắp xếp của các mục nhập không quan trọng.
    5. Cuối cùng, việc duy trì và sửa đổi danh sách nguồn rất dễ dàng.

    Được rồi, lý thuyết đủ rồi, chúng ta hãy bắt tay vào thực hành.

    1. Sắp xếp dữ liệu nguồn của bạn trong một bảng

    Như thường lệ, điều đầu tiên bạn cần làm là viết ra tất cả các lựa chọn cho danh sách thả xuống của mình trong một trang tính. Lần này, bạn sẽ lưu trữ dữ liệu nguồn trong bảng Excel. Đối với điều này, khi bạn đã nhập dữ liệu, hãy chọn tất cả các mục nhập và nhấn Ctrl + T hoặc nhấp vào tab Chèn > Bảng . Sau đó, nhập tên bảng của bạn vào hộp Tên bảng .

    Cách tiếp cận thuận tiện và trực quan nhất là lưu trữ các mục cho danh sách thả xuống đầu tiên dưới dạng tiêu đề bảng và các mục cho danh sách thả xuống phụ thuộc dưới dạng dữ liệu bảng. Ảnh chụp màn hình bên dưới minh họa cấu trúc bảng của tôi, có tên exporters_tbl - tên trái cây là tiêu đề bảng và danh sách các quốc gia xuất khẩu được thêm vào bên dưới tên trái cây tương ứng.

    2. Tạo tên Excel

    Bây giờ, dữ liệu nguồn của bạn đã sẵn sàng, đã đến lúc thiết lập các tham chiếu được đặt tên sẽ tự động truy xuất danh sách chính xác từ bảng của bạn.

    2.1. Thêm tên cho hàng tiêu đề của bảng (danh sách thả xuống chính)

    Để tạotên mới tham chiếu đến tiêu đề bảng, chọn nó rồi nhấp vào Công thức > Trình quản lý tên > Mới hoặc nhấn Ctrl + F3 .

    Microsoft Excel sẽ sử dụng hệ thống tham chiếu bảng tích hợp để tạo tên của mẫu table_name[#Headers] .

    Hãy cung cấp cho nó một số tên ý nghĩa và dễ nhớ, e.g. fruit_list và nhấp vào OK .

    2.2. Tạo tên cho ô chứa danh sách thả xuống đầu tiên

    Tôi biết rằng bạn chưa có bất kỳ danh sách thả xuống nào :) Nhưng bạn phải chọn ô để lưu trữ danh sách thả xuống đầu tiên của mình và đặt tên cho ô đó ô ngay bây giờ vì bạn sẽ cần đưa tên này vào tham chiếu của tên thứ ba.

    Ví dụ: hộp thả xuống đầu tiên của tôi nằm trong ô B1 trên Trang tính 2, vì vậy tôi tạo một tên cho nó, một cái gì đó đơn giản và tự giải thích như trái cây :

    Mẹo. Sử dụng tham chiếu ô thích hợp để sao chép danh sách thả xuống trên trang tính.

    Hãy đảm bảo đọc kỹ một số đoạn văn sau vì đây là một mẹo rất hữu ích mà bạn không muốn bỏ lỡ . Cảm ơn Karen rất nhiều vì đã đăng nó!

    Nếu bạn định sao chép danh sách thả xuống của mình sang các ô khác, thì hãy sử dụng các tham chiếu ô hỗn hợp khi tạo tên cho (các) ô với danh sách thả xuống đầu tiên của bạn danh sách.

    Để trình đơn thả xuống sao chép chính xác sang các cột khác (tức là sang bên phải), hãy sử dụng cột tương đối (không có $

    Michael Brown là một người đam mê công nghệ chuyên dụng với niềm đam mê đơn giản hóa các quy trình phức tạp bằng các công cụ phần mềm. Với hơn một thập kỷ kinh nghiệm trong ngành công nghệ, anh ấy đã trau dồi kỹ năng của mình trong Microsoft Excel và Outlook, cũng như Google Trang tính và Tài liệu. Blog của Michael dành để chia sẻ kiến ​​thức và chuyên môn của anh ấy với những người khác, cung cấp các mẹo và hướng dẫn dễ thực hiện để cải thiện năng suất và hiệu quả. Cho dù bạn là một chuyên gia dày dạn kinh nghiệm hay người mới bắt đầu, blog của Michael đều cung cấp những hiểu biết có giá trị và lời khuyên thiết thực để tận dụng tối đa những công cụ phần mềm thiết yếu này.