2013-03-06 61 views
2

我一直在尋找堆棧溢出並一般搜索,但我一直在爲我的驗證源(like this one)收集關於使用多單元格範圍的教程。從存儲在單元格中的CSV列表中進行單元驗證

我有可能的材料和相關聯的質量的一個表:密度,保護值,每單位重量的成本,可用性等重要的是,其中一列是「有效的施工方法」,並且該小區包含一個逗號分隔 - 字符串列表。用戶使用具有驗證下拉列表的單元格選取其中一種材料(此部分工作正常)。

我需要第二個下拉菜單,它將顯示可用於從第一個下拉列表中選擇的材質的有效構造方法。我可以通過使用我的構造方法表中的名稱列作爲驗證限制來顯示所有構造方法,但我只想要有效的方法。因此,例如,如果用戶選擇「手工鍛造的鐵」,他們不應該選擇「絎縫」或「偏斜分層」選項 - 這些選項僅適用於柔性織物材料。相反,如果他們選擇「亞麻布」,他們不應該有能力挑選「鉸接板」 - 這對亞麻布和其他面料來說是無稽之談。

我可以在驗證框中手工輸入一個逗號分隔列表,並且下拉列表正確生成,但是我無法將驗證框的VLOOKUP賦給包含逗號分隔符的單個單元格,列表(= VLOOKUP(Material,MaterialTbl,7,False)),它會抱怨源必須是已刪除的列表或對單個行或列的引用。

我也嘗試把VLOOKUP放在一個單元格中,只是將確認框指向那個(= $ H $ 16),但我得到的只是一個包含整個列表,逗號和所有選項的選項。 EG我的名單包括一個選項:「郵件,分段板,標尺,板」而不是四個選項:「郵件」,「分段板」,「標尺」,「板」。

有沒有辦法做到這一點?

有沒有辦法做到這一點,而不訴諸VBA? (如有必要,我會訴諸VBA,但我希望沒有宏的電子表格,因爲它更容易分發)。

+0

數據驗證不允許數組AFAIK。最好的方法是重新組織電子表格以允許動態命名範圍(只需添加另一個表格或隱藏表格,以定義每個材質的有效構造方法,按行/列排列),然後創建一些動態命名範圍來引用這個表,並在材質選擇發生變化時返回適當的列表http://support.microsoft.com/kb/830287 – 2013-03-06 15:59:01

+0

如果我正確地關注文章(和教程),這將需要有一個對於每種材料類型命名的範圍 - 這將使添加新材料的表有點具有挑戰性 – 2013-03-06 16:33:53

+0

Woops - 我剛剛發現[本教程](http://excelsemipro.com/2011/05/a-dynamic-dependent-下拉列表在Excel中/),它看起來像繞過每個材料類型需要一個靜態命名範圍相當好的問題。 – 2013-03-06 16:57:35

回答

0

我仍然認爲你最好通過創建一個表格和定義的動態範圍來關閉此表。

如有必要,您可以將其放在隱藏的工作表上。

我會在工作表中定義兩個命名範圍。 TableRange將引用整個表格,並且ListRange將根據您的下拉菜單中的選擇而成爲一個單獨的1列範圍。

使用一些公式(可能會變得複雜)和動態範圍,可以很容易地讓您的下拉列表相互「相關」。

https://docs.google.com/file/d/0B1v0s8ldwHRYMUpQRmluVzRkcnM/edit?usp=sharing

Sheet 1中說明了我如何設置命名區域

Sheet 2中具有例如下拉菜單中,頂層被鏈接到細胞$A$1:$C$1 Sheet 1上,並且第二下拉被鏈接到動態ListRange

相關問題