在Excel中创建动态下拉列表,其中值可能出现在多个列中

时间:2015-06-15 17:41:29

标签: excel excel-formula

通常,如果查找数组的列中的值是唯一的,则只需要将上一个动态数据验证列表中的值与查找数组的相关列中的值进行匹配,以提供值范围用于下一个动态数据验证列表。但是,如果列中的值不唯一,是否有办法在Excel中创建动态数据验证列表?我认为这可以通过确保必须选择多个列中的值来实现,以便为第三列提供动态范围,例如,必须在第一个下拉列表中选择X,在第二个下拉列表中选择Y,以便查找第三个动态数据验证列表的值,但我无法确定如何。

作为一个例子,让我们说我的查找数组如下所示:

Field1,Field2,Field3 A,C,F A,C,G A,D,H B,E,I B,C,J B,C,K

如果我在第一个动态数据验证列表中选择B而在第二个中选择C,我希望第三个的范围是J和K,而不是F,G,J和K.

1 个答案:

答案 0 :(得分:1)

您必须为sudo service mysql restart Field2设置第二列。

如果您认为您的下拉列表位于Field3A10的单元格中,并且您的字段位于AC列中,那么您可以转到D列并制作C10 D1 =if($a$10=a1,b1,"")将为D2。您可以根据需要将D2向下拖动多行。完成后,您将该范围命名为if(countif(d$1:d1,if($a$10=a2,b2,""))=1,"",if($a$10=a2,b2,""))(或者您在数据验证列表中使用的任何名称)。

对于Field2,您基本上会做同样的事情,除非您使用Field3。因此,and E1 =if(and($a$10=a1,$b$10=b1),c1,"")E2 =if(countif(e$1:e1,if(and($a$10=a1,$b$10=b2),c2,""))=1,"",if(and($a$10=a1,$b$10=b2),c2,"")) Field3。当您这样做时,将其命名为field3

缺点是下拉列表会有空白,前两个中的一个不会重置最后一个。要克服这个缺陷,您必须在VBA中设置工作表更改事件。

编辑:

好的从头开始...... 我现在把A12-C12的下拉列表。 The sheet

你仍然在D和E列中基本上有公式,但是你必须再做3个列才能进行独特化(这是一个技术术语,意思是使其独一无二)以前的列。您无法在此图片中看到列H,但它与countif的模板相同。这些是数组公式,因此在按CTRL-SHIFT-ENTER键入后输入后不会输入。你会知道你做得对,因为它会在公式周围加上花括号。一旦你将公式复制下来。

完成后,请转到公式定义名称。 enter image description here

在那里填写名称enter image description here

确保更改offset中的行以匹配您的数据,但对于html, body { overflow: hidden; position: relative; } .menu, .slide, .ico { overflow-x: hidden; overflow-y: scroll; position: fixed; height: 100%; width: 100%; } .menu::-webkit-scrollbar, .slide::-webkit-scrollbar, .ico::-webkit-scrollbar { display: none; } .container { display: table; height: 100%; position: absolute; overflow: hidden; width: 100%; } .links { height: 100%; display: table-cell; vertical-align: middle; } 的第一个参数,您只需选择列表中的第一个单元格,并保持这两个0不变。< / p>

完成后,您可以根据上一步中的名称制作下拉列表。

enter image description here

这可以让你达到你想要的99%。不幸的是,如果第一行在唯一列中为空,则仍然容易出现1个空白。我无法弄清楚如何摆脱它,但因为它只有1空白它不应该太糟糕。此外,如果您更改父下拉菜单,则不会重置子项下拉列表。