从存储在单元格中的CSV列表中进行单元validation

我一直在寻找堆栈溢出和一般search,但我不断得到使用多个单元格范围为我的validation源( 如这个 )的教程。

我有一个可能的材料和相关质量的表格:密度,保护价值,单位重量成本,可用性等。关键的是,其中一列是“有效的施工方法”,并且该单元格包含逗号分隔的string列表。 用户使用具有validation下拉列表的单元格选取其中的一种材料(这部分工作正常)。

我需要第二个下拉菜单,它将显示可用于从第一个下拉列表中select的材质的有效构造方法。 我可以通过使用我的施工方法表中的名称列作为validation限制来显示所有的施工方法,但我只想要有效的施工方法。

因此,例如,如果用户select“铁,手工锻造”,他们不应该select“绗缝”或“偏斜分层” – 这些选项仅适用于柔性织物材料。 而相反,如果他们select“亚麻”,他们不应该有能力挑选“铰接板” – 这是亚麻和其他面料的废话价值。

我可以手动键入逗号分隔列表到validation框和下拉列表正确生成,但我不能给VLOOKUPvalidation框单个单元格包含一个逗号分隔列表(= VLOOKUP (Material,MaterialTbl,7,False)),它抱怨源必须是一个删除列表或对单个行或列的引用。

我也尝试把VLOOKUP放在一个单元格中,只是把确认框指向那个(= $ H $ 16),但是我得到的只是一个包含整个列表,逗号和全部的选项。 EG我的名单包括一个选项:“邮件,分段板,标尺,板”而不是四个选项:“邮件”,“分段板”,“标尺”,“板”。

有没有办法做到这一点?

有没有办法做到这一点,而不诉诸于VBA? (如果有必要,我会诉诸VBA,但我希望没有macros的电子表格,因为它更容易分发)。

我仍然认为,通过创build一个表格和一个定义的dynamic范围来closures这张表格是最好的。

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

我将在工作表中定义两个命名范围。 TableRange将引用整个表格, ListRange将根据您的下拉菜单中的select而成为一个单独的1列范围。

使用一些公式(可能会变得复杂)和dynamic范围,使下拉列表相互“相关”是相当容易的。

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

Sheet1解释了我如何设置命名范围

Sheet2具有示例下拉菜单,顶层链接到Sheet1上的Cells $A$1:$C$1 ,第二个下拉链接链接到dynamicListRange