我正在尝试建立一个人员表,其中有第一个和第二个首选项的列,例如:
Name Favourite Fruit Second Favourite Fruit Person 1 Apple Banana Person 2 Kiwi Fruit Pear
我要做的是阻止选择偏好两次,例如停止用户选择第1个人的最爱为apple
,并将他们的第二个最爱选为apple
。
我正在使用数据验证来引用命名范围。
是否可以使用公式而不是Visual Basic执行此操作?
实际上该列表有22个项目,因此根据所选择的内容设置多个列表会相当笨重。
答案 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
表1需要VBA(计算表)
表2没有:P