之前教過大家如何使用資料驗證的功能來製作下拉式選單。學會使用下拉選單之後,不知道有沒有產生這樣的想法:那 Excel 可以做出多層下拉式選單嗎?比如說,第一格選擇台北市的時候,第二格會對應出現台北市有的行政區選項。其實Excel是可以實現這樣的功能,當然也會相對複雜一些。接下來,讓我一步一步教大家怎麼完成多層式下拉選單。
Excel 範例檔案下載:Excel-dependent-drop-down-list.xlsx
建立清單:名稱管理員(Data Lists:Name Manager)
首先,需要先準備資料,我這邊使用鄉鎮市區列表,以 3 筆為例:
接著就要建立關聯清單了。簡單來說,就是要告訴 Excel [A2]到[A13]是屬於臺北市,[B2]到[B30]是新北市,[C2]到[C13]是桃園市。
這裡使用到名稱管理員這個工具:「工具列 > 公式 > 以定義之名稱 > 名稱管理員」。
這邊提供三個方法:名稱方塊、從選單範圍建立、 名稱管理員手動新增。下面大家可以選擇自己習慣使用的方法。
名稱方塊(Name Box)
首先選取[A2]到[A13],點擊下圖左上方紅色框(名稱方塊)的位置,輸入「臺北市」,按下 Enter。
這樣就完成名稱設定了,我們可以到「工具列 > 公式 > 以定義之名稱 > 名稱管理員」中確認。剛剛建立的清單會顯示在裡面。這樣臺北市就完成了。
從選單範圍建立(Create From Selection)
第二個方法是使用內建的功能:從選單範圍建立。
以桃園市為例。首先選取[C1]到[C14],這裡記得把「桃園市」也選進去(因為第一筆資料會被設定為名稱),之後點擊從選單範圍建立:「工具列 > 公式 > 以定義之名稱 > 從選單範圍建立」。選擇頂端列,按下確定。到這邊桃園市也完成了。
名稱管理員(Name Manager)
這邊主要教大家如何手動增加名稱:「工具列 > 公式 > 以定義之名稱 > 名稱管理員」,點擊新增。
名稱填入「新北市」,參照到就直接選取[B2]到[B30],按下確定,新北市就完成了。
這裡建議大家,完成後可以開啟名稱管理員確認剛剛建立的名稱:「工具列 > 公式 > 以定義之名稱 > 名稱管理員」,進一步確認建立的名稱有沒有異常。
第一層下拉式選單(First Level drop-down List)
接下來會簡單說明使用方式。如果需要更詳細的教學,可以看之前的文章:【Excel】資料驗證、下拉式選單 (Data Validation & Drop-down List)。
第一層下拉選單使用資料驗證中的清單。先選取要使用選單的儲存格[E2],點擊資料驗證:「工具列 > 資料 > 資料工具 > 資料驗證」,使用清單,來源就選取[A1]到[C1],按下確認。這樣第一層選單就設定完成。
第二層下拉式選單(Second Level drop-down List)
第二層需要使用 INDIRECT 這個函數,它會回傳一串文字所指定的參照位址。
=INDIRECT(文字)
這裡簡單示範一下:上面我已經建立了「臺北市」這個名稱,因此我在 INDIRECT 中使用「臺北市」這串文字(直接打字串需用雙引號包起來),該函數會回傳名稱為「臺北市」的列陣。
使用 INDIRECT 會回傳陣列的特性,把該函數放入資料驗證中的清單來源,而函數的文字參數指向[E2],就可以讓它依照第一層的選單值來變化回傳的清單。
最後讓我們來看看多層下拉式選單的成效。
Excel 範例檔案下載:Excel-dependent-drop-down-list.xlsx
更多 Excel 文章請至 文章導覽 尋找,也可利用上方「搜尋(Search...)」功能
有任何莫非工具的問題,歡迎至「表單」提問
Excel 是不是很容易
和墨菲一起用 Excel 把工作變簡單
Pingback: 莫非工具 | 文章導覽 - 墨菲莫非