2

我一直在 Stack Overflow 上进行搜索,并且通常在 Google 上四处搜索,但我不断获得有关使用多单元格范围作为我的验证源的教程(比如这个)。

我有一张可能的材料和相关质量的表格:密度、保护价值、每单位重量的成本、可用性等。关键的是,其中一列是“有效的构造方法”,这个单元格包含一个逗号分隔的字符串列表. 用户使用带有验证下拉菜单的单元格选择其中一种材料(这部分工作正常)。

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

因此,例如,如果用户选择“铁,手工锻造”,他们不应该选择“绗缝”或“倾斜分层”——这些选项仅对柔性织物类材料有效。反过来,如果他们选择“亚麻”,他们应该没有能力选择“铰接板”——这对亚麻和其他织物来说是一个无意义的价值。

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

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

有没有办法做到这一点?

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

4

1 回答 1

0

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

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

我会在工作表中定义两个命名范围。TableRange将引用整个表格,并且ListRange将是一个单独的 1 列范围,该范围是基于下拉菜单中的选择而动态变化的。

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

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

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

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

于 2013-03-06T19:51:43.823 回答