多个下拉列表并避免两次选择项目

时间:2015-11-04 16:35:52

标签: excel list validation drop-down-menu

我正在尝试建立一个人员表,其中有第一个和第二个首选项的列,例如:

Name        Favourite Fruit         Second Favourite Fruit
Person 1    Apple                   Banana
Person 2    Kiwi Fruit              Pear

我要做的是阻止选择偏好两次,例如停止用户选择第1个人的最爱为apple,并将他们的第二个最爱选为apple

我正在使用数据验证来引用命名范围。

是否可以使用公式而不是Visual Basic执行此操作?

实际上该列表有22个项目,因此根据所选择的内容设置多个列表会相当笨重。

2 个答案:

答案 0 :(得分:0)

这是我在没有VBA的情况下能够提出的最好的结果,但是你可以在下拉列表中找到空白点。

     [A]    [B]                                                                                              [J]        [K]
1    Master DropdownList                                                                                     Choose A   Choose B
2    A      =IF(IFERROR(VLOOKUP(A2,$J$2:$J$9,1,FALSE),IFERROR(VLOOKUP(A2,$K$2:$K$9,1,FALSE),""))<>"","",A2)   
3    B      =IF(IFERROR(VLOOKUP(A3,$J$2:$J$9,1,FALSE),IFERROR(VLOOKUP(A3,$K$2:$K$9,1,FALSE),""))<>"","",A3) 
4    C      =IF(IFERROR(VLOOKUP(A4,$J$2:$J$9,1,FALSE),IFERROR(VLOOKUP(A4,$K$2:$K$9,1,FALSE),""))<>"","",A4) 
5    D      =IF(IFERROR(VLOOKUP(A5,$J$2:$J$9,1,FALSE),IFERROR(VLOOKUP(A5,$K$2:$K$9,1,FALSE),""))<>"","",A5) 

注意:此示例中列J和K的数据验证为$ B2:$ B5

注意2:VLookup onl查看J2:J9和K2:K9,您需要根据需要展开它,但是您可以拖动公式并自动填充。

注3:当您使用下拉列表选择J列或K列中的选项时。这些选项将转为空白&#39;或动态清空字符串。

答案 1 :(得分:0)

好的,虽然有几种方法可以解决这个问题,但每个条目都没有2个列表,甚至没有VBA是不可能的。 (假设第二个下拉列表中的选择也在第一个下拉列表中禁用它)

然而,有一个半途而废的&#39;解决方法。
当没有&#34;范围&#34;时,工作表函数Cell(不是VBA函数)有一个奇怪的行为。设定目标。

=Cell("address")

将显示&#34;所选&#34;的地址单元格(仅在计算工作表时)
知道这一点,并在选择F9时按$G$13,它也会显示它。

然而,现在出现了下行风险:(
对于这样的问题,它不会有帮助,因为它只在每次计算时刷新,并且选择不同的单元格不会触发它。虽然使用VBA并没有“#34;请求者,每个条目只留下&#34;两个列表&#34;方法

我只是在这里分享WB。 (在这里编写所有代码可能很多):D

That's the Workbook

表1需要VBA(计算表)
表2没有:P