2015-11-04 100 views
0

我想建立的地方有一个第一和第二的偏好如列人表:多重下拉列表,避免选择一个项目两次

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

我所试图做的是防止偏好被选择两次,例如,停止用户选择人1的最爱作为apple以及他们的第二最喜欢作为apple

我正在使用数据验证指的是一个命名范围。

是否可以使用公式而不是使用Visual Basic做到这一点?

实际上,这个列表有22个项目,所以根据选择什么样的喜好设置多个列表将是相当困难的。

+0

没有VBA您需要为每个人创建一个完整列表...没有解决方法...要正确:每个人的2个列表(在“second”中选择“apple”也应禁用它在“第一喜欢”) –

回答

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中的选项时。这些选项会动态变为空白或空字符串。

+0

你仍然必须为每个人做...在'J2'中选择'A'在'K3'中禁用它 –

0

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

但是,存在一种“半途而废”的解决方法。
工作表函数Cell(不是VBA函数)在目标中没有设置“范围”时会有奇怪的行为。

=Cell("address") 

将显示“选择了”小区(计算片材仅当)
明知和按压F9$G$13被选择的地址,它也将显示它。

然而,现在来的下行:(
对于这种问题不会有所帮助,因为真的刷新仅在每个计算和选择不同的细胞不会触发它。当使用VBA不是“alowed “请求者,它仅留下‘每个条目的两个列表’方法

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

That's the Workbook

表1需要VBA(计算表)
表2不包含:P

相关问题