Excel 二級下拉選單的3種方法

2022-08-05 18:08:58 字數 1952 閱讀 9959

第一種做法:使用函式indirect

看看例子

很明顯,我們希望在一級選擇機房故障,那麼2級就出現他下面的列表。

要實現這個目標並不複雜。

1:建立“名稱

3個一級選項,我們需要建立3個“名稱”:機房故障 線路故障 使用者端故障。

這個時候,你就建立了3個名稱

還需要建立一個名稱,叫做“故障型別”這個名稱包括“機房故障 線路故障 使用者端故障”這3項。

這個時候,你就可以在“名稱管理器”看到4個名稱

2:建立1級選單

1級選單的辦法就簡單了

這樣就解決了一級的下拉選單。

3:2級選單

這個地方你需要注意,=indirect($f2)

如果你寫成 =indirect($f$2),

如果是這樣的話,你確定會出現一個報錯

這個時候,你就實現了2級選單

第二種做法:使用函式index

還是上面的例子,用另外一種方式來實現。這個例子裡,你只需要建立2個名稱。

1:建立名稱

建立:故障型別 名稱,方法和上面一樣。

建立:2級  名稱

建立上面兩個名稱。

2:建立下拉選單

第一下拉選單和上面一樣,我就不重複了,現在是演示第二級下拉選單

=index(二級,0,match(i$2,故障型別,0))

這樣你就搞定2級選單裡。

第三種做法:使用函式offset

學這個offset函式半天,才搞定。現在只是可以實現這個功能。不過還有需要改進的地方

還是上面的例子,

=offset(a2,,match(l2,故障型別,)-1,6,1)

這樣也是可以實現2級的下拉選單。

以上的方式其實是不太完善的,因為我們的2級選單剛好都是6項,那麼如果是不等的,那你就只能取最多的。

完善的做法,當然是動態的,根據2級選單的數量來顯示。需要解決的問題,就是如果動態計算出每項2級選單的數量。

2級選單數量=counta(offset(a:a,,match(l2,故障型別,0)-1))-1

那麼我們的公式就變成

=offset(a2,,match(l2,故障型別,)-1,counta(offset(a:a,,match(l2,故障型別,0)-1))-1,1)

這樣就更加完美