上一篇我們講到了如何在Excel中創(chuàng)建基礎(chǔ)的下拉菜單,然而在很多業(yè)務(wù)場(chǎng)景里,需要首先選擇一級(jí)菜單,再根據(jù)一級(jí)菜單的選擇內(nèi)容決定二級(jí)菜單有哪些選項(xiàng),看到這里,你想到了哪些應(yīng)用場(chǎng)景呢?沒(méi)錯(cuò),最常見(jiàn)的就是【省份+城市】的二級(jí)下拉菜單組合。今天的示例代碼就以此構(gòu)建。
最終的效果如圖所示:

第一步、設(shè)置二級(jí)選項(xiàng)數(shù)據(jù)
1.1 創(chuàng)建一個(gè)sheet表,專門(mén)存放菜單選項(xiàng):

1.2 在標(biāo)簽列表中,輸入一級(jí)、二級(jí)菜單,使它們?cè)谕恍谢蛲涣校?/p>

第二步、依次設(shè)置變量名
2.1 一級(jí)菜單的變量名設(shè)置和上篇講的一樣,選中、左上角輸入框設(shè)置,忘記的話可以返回上一篇查看:

2.2 二級(jí)菜單的變量名設(shè)置方式有些許不同,選中同一行(包含一級(jí)、二級(jí)),點(diǎn)選上方的【公式】選項(xiàng)卡,點(diǎn)擊【根據(jù)所選內(nèi)容創(chuàng)建】:

2.3 在彈出的窗口里,選擇最左列。這個(gè)的含義就是將最左列的一級(jí)菜單的名稱和后面的二級(jí)菜單的所有選項(xiàng)進(jìn)行了關(guān)聯(lián),使用這種方式,防止出現(xiàn)一級(jí)菜單選項(xiàng)太多而打錯(cuò)字的情況。

第三步、在主表中進(jìn)行菜單設(shè)置
3.1 返回主表,找到省市那一列的單元格,開(kāi)始設(shè)置一級(jí)菜單,這還是上節(jié)課的內(nèi)容:

彈窗選擇【允許:序列】【來(lái)源:=一級(jí)菜單變量名】

一級(jí)菜單設(shè)置成功:

3.2 找到城市那一列的單元格,開(kāi)始設(shè)置二級(jí)菜單。

彈窗的選項(xiàng)這么設(shè)置:

這里注意,來(lái)源要寫(xiě)
=INDIRECT(INDIRECT("$一級(jí)菜單所在列的字母序號(hào)"&ROW()))
解釋一下:
這是一個(gè)嵌套結(jié)構(gòu),里面涉及到了INDIRECT函數(shù),意思就是獲取某個(gè)單元格的引用值。那么我們先看里面的那一層INDIRECT函數(shù):
INDIRECT("$一級(jí)菜單所在列的字母序號(hào)"&ROW())
獲取“一級(jí)菜單那一列、當(dāng)前單元格所在行”的那個(gè)單元格的引用值,也就是當(dāng)前二級(jí)菜單的一級(jí)菜單嘛!~
好,現(xiàn)在拿到了那個(gè)值,假設(shè)說(shuō)是“廣東省”,那么外層函數(shù)就是INDIRECT("廣東省"),這是什么意思呢?請(qǐng)注意INDIRECT函數(shù)括號(hào)里的值永遠(yuǎn)都表示單元格,因?yàn)檫@個(gè)函數(shù)的用法就是獲取某單元格的引用值,因此,此時(shí)的“廣東省”并不是三個(gè)文本字符,而是代表你剛才在第二步里設(shè)置的那一組叫“廣東省”的二級(jí)菜單選項(xiàng)的單元格組,所以順推引用值,就是廣東省的所有二級(jí)菜單選項(xiàng)。
好的,推導(dǎo)到這里你應(yīng)該已經(jīng)懂了,是不是有種醍醐灌頂?shù)内s腳?我們看一下設(shè)置好的二級(jí)菜單:

它會(huì)根據(jù)左邊一級(jí)菜單的內(nèi)容而改變選項(xiàng):

思考題:如何設(shè)置三級(jí)菜單、四級(jí)菜單……N級(jí)菜單?
這里留一個(gè)思考題,你可以在下方留言評(píng)論,沒(méi)有任何獎(jiǎng)勵(lì),只是幫助你更深刻的理解Excel的名稱管理器、數(shù)據(jù)驗(yàn)證,熟練掌握而已~
另外,想要設(shè)置一整列選項(xiàng)、隱藏sheet數(shù)據(jù)表,這些進(jìn)階技巧在上一課也都講了,本篇就不再贅述。
這節(jié)課的示例文檔也同步到網(wǎng)盤(pán)了,歡迎點(diǎn)贊收藏評(píng)論,私聊給我哦~