多重下拉列表,避免选择一个项目两次
我想建立的地方有一个第一和第二的偏好如列人表:多重下拉列表,避免选择一个项目两次
Name Favourite Fruit Second Favourite Fruit Person 1 Apple Banana Person 2 Kiwi Fruit Pear
我所试图做的是防止偏好被选择两次,例如,停止用户选择人1的最爱作为apple
以及他们的第二最喜欢作为apple
。
我正在使用数据验证指的是一个命名范围。
是否可以使用公式而不是使用Visual Basic做到这一点?
实际上,这个列表有22个项目,所以根据选择什么样的喜好设置多个列表将是相当困难的。
这是最好的,我可以想出没有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中的选项时。这些选项会动态变为空白或空字符串。
你仍然必须为每个人做...在'J2'中选择'A'在'K3'中禁用它 –
好的,虽然有几种方法可以解决这个问题,但对于每个条目甚至没有VBA都没有2个列表是不可能的。 (假设第二个下拉列表中的选项在第一个下拉列表中也禁用了它)
但是,存在一种“半途而废”的解决方法。
工作表函数Cell
(不是VBA函数)在目标中没有设置“范围”时会有奇怪的行为。
=Cell("address")
将显示“选择了”小区(计算片材仅当)
明知和按压F9
而$G$13
被选择的地址,它也将显示它。
然而,现在来的下行:(
对于这种问题不会有所帮助,因为真的刷新仅在每个计算和选择不同的细胞不会触发它。当使用VBA不是“alowed “请求者,它仅留下‘每个条目的两个列表’方法
我只是在这里分享的WB(写这里所有的代码可能是很多):d
表1需要VBA(计算表)
表2不包含:P
没有VBA您需要为每个人创建一个完整列表...没有解决方法...要正确:每个人的2个列表(在“second”中选择“apple”也应禁用它在“第一喜欢”) –