2017年11月7日 星期二

建立多層關聯下拉式選單 (EXCEL 2016)


大家好 !!  今天想介紹一下如何利用EXCEL去建立多層關聯式下拉式選單

什麼是多層關聯下拉式選單 ??

簡單來說就是 "有階層關連性的下拉式選單" 

例如我們上郵局網站查詢郵遞區號 (圖1)


我隨意查詢的是 "南投縣" "魚池鄉" "文正巷"

一階主要查詢內容:南投縣

二階次要查詢內容:魚池鄉

三階次要查詢內容:文正巷

必須依照階層順序去做查詢

便可以知道南投縣魚池鄉文正巷的郵遞區號是多少??

換句話說 如果我沒有先選到"南投縣"就沒辦法依序選到魚池鄉文正巷

這也是多層關聯下拉式選單的缺點 (不可逆)

今天教大家使用EXCEL進行多層關聯式下拉式選單的製作

也會教大家函數的使用
-----------------------------------------------------------------------------------------
1. 彙整資料 (圖2)

從圖2大家應該可以看到

下拉式選單是我們的查詢範圍,右邊三項分別為關聯性資料

一階主要查詢內容:地區(區域)

二階次要查詢內容:料理(種類)

三階次要查詢內容:食物(菜色)

我們就可以依照順序選擇我們要的菜色

2. 定義名稱(定義次要查詢項目)

將二階與三階進行定義名稱

主要原因是做群組分類並能夠使用 indirect函數 做參照
二階根據一階內容作選擇;三階根據二階內容作選擇

因此我們選取料理(二階)與食物(三階)

選取數據按下快捷鍵 ctrl+G 選擇特殊目標→選擇常數 (圖3)

 (p.s.選擇常數會將空白處抹滅)

接著進行定義名稱(圖4 ~ 圖6) _ 選擇頂端列

頂端列定義的原因是要依據一階的內容作為參照

圖4. 二階定義名稱
圖5. 三階定義名稱
圖6. 確認定義名稱

圖4 .二階定義名稱


圖5 .三階定義名稱


圖6. 定義名稱

3. 進行一階下拉式選單的設定 (圖7)

一階無需參照任何內容 因此我們選擇A列利用資料驗證

將一階設定為下拉式清單)



圖7. 一階設定下拉式選單

4. 利用 indirect函數做資料關聯性

在這邊先介紹 indirect 函數  (圖8)

說明:根據選擇的儲存格回傳內容字串

根據我們的範例來做說明 (圖9)

假設當我選擇一階(北區)

利用indirect函數回傳北區的二階內容 (中式料理、義式料理)

先選擇B列(垂直)  進行資料驗證使用 indirect函數 參照儲存格為A3 (圖9)

也就是說 參照地區回傳內容字串

選擇北區 北區的料理的內容是中式料理與義式料理

利用indirect函數回傳三階內容 (炒麵、義大利麵 等等)

選擇北區 北區的中式料理內容是炒飯、炒麵

先選擇C列(垂直)  進行資料驗證使用 indirect函數 參照儲存格為B3  (圖10)


再次強調 二階根據一階內容作選擇;三階根據二階內容作選擇 以此類推


圖8. indirect函數



                                     圖9. 參照1階


圖10. 參照2階


4. 最後依序下拉式清單測試 (圖10)

    

圖10