我得到n
類別舉行m
產品。這個列表是不排序,例如像這樣:Excel中的動態數據驗證(非VBA!)
現在,這裏就是我基本上要與此列表做:
下拉:數據驗證其動態存儲每個獨特的列表第一列的值(=我將無法選擇Category_5,因爲它尚不存在)。
下拉菜單:提供基於第一個下拉菜單中所選類別的所有產品的列表。
對此有任何非VBA的解決方案?
我得到n
類別舉行m
產品。這個列表是不排序,例如像這樣:Excel中的動態數據驗證(非VBA!)
現在,這裏就是我基本上要與此列表做:
下拉:數據驗證其動態存儲每個獨特的列表第一列的值(=我將無法選擇Category_5,因爲它尚不存在)。
下拉菜單:提供基於第一個下拉菜單中所選類別的所有產品的列表。
對此有任何非VBA的解決方案?
示例電子表格佈局:
A2:A13
- 分類列表,該項目是不是唯一的B2:B13
- 產品列表Cell D2
下 - 下拉列表1源,獨特的物品,動態Cell F2
下拉式 - 下拉列表2項增量編號1 ..(在公式中計算較少)Cell G2
向下 - 下拉列表2源,動態Cell I2
- 下拉電池1Cell J2
- 下拉電池2細胞D2
:陣列式(Ctrl鍵 - 移 - 從輸入公式窗口輸入,曲線括號由Excel插入,而不是由用戶插入),向下複製:
{=INDEX($A$2:$A$13;MATCH(0;COUNTIF($D$1:D1;$A$2:$A$13);0))}
給出了一個唯一的類別列表。
細胞G2
:陣列式,按照前一節中的說明:
{=INDEX($B:$B;SMALL(IF($A$2:$A$13=$I$2;ROW($A$2:$A$13);"");$F2))}
給出下在細胞I2
選擇的類別的的產品的列表。
該列表未排序:更好地按類別和產品對初始列表進行排序。
無錯誤處理:應使用IF ISERROR
子句更新公式。
爲了使它在Excel中無需使用VBA,您需要某種方式來重置第2列中用於數據驗證的有效條目範圍,並且源代碼只能是您必須編碼的列表或範圍當關聯的列1值發生變化時可以更改該信息。
如果您不想參加VBA路線,那麼這些活動就是面向類似Access(或InfoPath)的數據庫的黃油,這樣可以更好地滿足您的需求。
太棒了!幾乎認爲,我需要在VB中實現它。謝謝 :) –