之前已經(jīng)發(fā)過(guò)一篇多級(jí)下拉菜單的設(shè)置方法,到第三或跟多級(jí)下拉菜單時(shí),可能會(huì)比較麻煩,現(xiàn)在再給大家介紹一種方法,兩種方法也可以相互配合使用。還是以之前的表格為例,只是表格的形式做了些修改。
首先,設(shè)置一級(jí)下拉菜單。選中B5,打開(kāi)數(shù)據(jù)-數(shù)據(jù)有效性,允許一欄選擇序列,來(lái)源一欄可以直接輸入公式,也可以通過(guò)輸入框后邊的按鈕選擇范圍,最后確定。返回到工作表就會(huì)發(fā)現(xiàn)第一級(jí)的下拉菜單已經(jīng)完成了。下邊重點(diǎn)介紹下第二級(jí)下拉菜單的設(shè)置方法。第二級(jí)下拉菜單同樣需要一個(gè)數(shù)據(jù)有效性的范圍。這個(gè)范圍需要根據(jù)第一級(jí)的內(nèi)容來(lái)確定,而不是像第一級(jí)下拉菜單那樣,有一個(gè)固定的范圍。所以像這樣,動(dòng)態(tài)確定一個(gè)單元格范圍的方法,可以通過(guò)OFFSET()函數(shù)實(shí)現(xiàn)。下邊先給出完整的函數(shù),然后再做解釋。先選擇C5,打開(kāi)數(shù)據(jù)有效性,其他設(shè)置都一樣,只是在來(lái)源一欄輸入公式,然后確定即可:
=OFFSET(INDEX($F$5:$F$11,MATCH(B5,$F$5:$F$11,0)),0,1,COUNTIF($F$5:$F$11,B5),1)
下邊解釋下上邊的公式。1、OFFSET: offset(reference, row, cols, [height], [width]), offset有3個(gè)必選參數(shù)和2個(gè)可選參數(shù)。offset函數(shù)是根據(jù)參考位置來(lái)進(jìn)行偏移,從而索引到需要的單元格或單元格區(qū)域。第一個(gè)參數(shù)reference就是參考位置。第2,3個(gè)參數(shù)分別是偏移的行和列,第4,5個(gè)參數(shù)表示了單元格區(qū)域的高和寬。
假如我們商品類(lèi)別里選擇了手機(jī)數(shù)碼,那么我們希望商品名稱(chēng)的有效性數(shù)據(jù)為手機(jī)數(shù)碼里包含的項(xiàng)。這時(shí)我們將第一個(gè)手機(jī)數(shù)碼設(shè)置為參考位置,那么通過(guò)將偏移量設(shè)置為偏移0行,1列,就可以找到“手機(jī)”那一項(xiàng)。將高和寬分別設(shè)置為3和1,就可以將“手機(jī)”“存儲(chǔ)卡”“移動(dòng)電源”全部包含到區(qū)域內(nèi)。
那么怎么找到第一個(gè)手機(jī)數(shù)碼呢?這就用到了index函數(shù)。index(array, row_num, [column_num])返回的是一個(gè)數(shù)組中特定行(行列)的值。在本例中數(shù)組就是下圖的單元格區(qū)域。但是我們?cè)趺粗老瘛笆謾C(jī)數(shù)碼”“家用電器”等,在數(shù)列的第幾行呢?這就需要用到match函數(shù)。MATCH(lookup_value, lookup_array, [match_type]) ,返回一個(gè)值在一個(gè)數(shù)組中的位置。所以在本例中MATCH(B5,$F$5:$F$11,0)的意思是查找B5在上圖紅框中的具體位置,返回的是一個(gè)數(shù)字。這樣,INDEX($F$5:$F$11,MATCH(B5,$F$5:$F$11,0))就根據(jù)match函數(shù)提供的位置找到了參考位置的索引。
我們發(fā)現(xiàn)最終的公式里還有一個(gè)countif函數(shù),這個(gè)函數(shù)是統(tǒng)計(jì)給定區(qū)域內(nèi)符合條件的值的個(gè)數(shù)。因?yàn)槊恳粋€(gè)商品目錄下商品個(gè)數(shù)是不同的,所以我們?cè)谟胦ffset索引時(shí)也要根據(jù)商品類(lèi)型來(lái)指定區(qū)域的大小,這也是為什么在“手機(jī)”“存儲(chǔ)卡”“移動(dòng)電源”這些項(xiàng)前都要加一個(gè)”手機(jī)數(shù)碼“的原因,就是為了來(lái)統(tǒng)計(jì)”手機(jī)數(shù)碼“里包含多少個(gè)項(xiàng)。
第二級(jí)下拉菜單設(shè)置成功后,第三級(jí)下拉菜單就好說(shuō)了。只需要將第二級(jí)下拉菜單里用到的那個(gè)公式里所有的B5改為C5,所有的單元格區(qū)域$F$5:$F$11改為第三極菜單的區(qū)域。
后邊多級(jí)菜單也就比較簡(jiǎn)單了,方法是一樣的。
可能我的表述不是很清楚,尤其是在函數(shù)介紹那一部分,還請(qǐng)各位看官多多包涵,感謝您的閱讀,請(qǐng)批評(píng)指正。
聯(lián)系客服