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

时间:2013-03-06 15:12:24

标签: excel list validation conditional

我一直在搜索Stack Overflow并且通常在谷歌上搜索,但我一直在为我的验证源(like this one)获取使用多单元格范围的教程。

我有一张可能的材料和相关品质的表格:密度,保护值,单位重量成本,可用性等。重要的是,其中一列是“有效的施工方法”,此单元格包含逗号分隔 - 字符串列表。用户使用带有Validation下拉列表的单元格选择其中一种材料(此部分工作正常)。

我需要第二个下拉列表,它将显示可以与从第一个下拉列表中选择的材料一起使用的有效构造方法。我可以使用构造方法表中的name列作为验证限制来显示所有构造方法,但我只想要有效的。

因此,例如,如果用户选择“铁,手工锻造”,他们就不应该选择“绗缝”或“分层偏好” - 这些选项仅适用于柔性类似织物的材料。相反,如果他们选择“亚麻”,他们就不应该选择“铰接板” - 这对于亚麻和其他面料来说是无意义的价值。

我可以将逗号分隔列表手动输入到验证框中,并且正确生成下拉列表,但我无法将验证框提供给包含逗号分隔列表的单个单元格的VLOOKUP (= VLOOKUP(Material,MaterialTbl,7,False)),它抱怨源必须是一个已删除的列表或对单个行或列的引用。

我还尝试将VLOOKUP放在一个单元格中,只是将验证框指向(= $ H $ 16),但我得到的只是一个包含整个列表,逗号和所有内容的选项。 EG我的清单包括一个选项:“邮件,分段板,比例,板”而不是四个选项:“邮件”,“分段板”,“比例”,“板”。

有没有办法做到这一点?

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

1 个答案:

答案 0 :(得分:0)

我仍然认为你最好通过创建一个表格和一个定义的动态范围来关闭这个表格。

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

我会在工作表中定义两个命名范围。 TableRange将引用整个表格,ListRange将是一个单独的1列范围,根据您的下拉菜单中的选项动态显示。

使用一些公式(可以变得复杂)和动态范围,很容易让你的下拉列表彼此“相关”。

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

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

Sheet2有示例下拉菜单,顶层链接到Sheet1上的单元格$A$1:$C$1,第二个下拉列表链接到动态ListRange