在excel中的一个单元格中组合列表和自定义公式数据验证,而无需vba

时间:2016-05-16 13:21:35

标签: excel validation

任何人都可以帮助在不使用vb​​a的情况下在单个单元格中组合列表和自定义公式数据验证吗?我有一个自定义公式,如果逻辑为TRUE,则验证数据,但我希望用户也有能力从下拉列表中进行选择。任何帮助将不胜感激。感谢。

对不起,如果问题不够清楚。请参阅以下内容:

enter image description here

在此示例中,即使用户能够从下拉列表中进行选择,如果用户为单元格A2选择7,则验证应该抛出错误,因为它不小于或等于单元格B2。它更清楚吗?

3 个答案:

答案 0 :(得分:3)

此非VBA解决方案将条件与下拉选项列表结合在一起。 它提供了2个不同的选项列表,取决于另一列中的值。

共享cascading-lists method 不同(但有些技巧可以看link

假设您有一个包含两列的表格。 Field1可能包含任何内容:

a
box
cat
z

要求:当Field1包含a时,Field2的验证应显示List1下拉列表,当Field1包含其他内容时,显示List2。

解决方案:依赖Excel条件公式可以返回包含项列表的范围这一事实。

<强>步骤:

  • 在查找表上创建一个选项列表值列表,并将其命名为List1
  • 在查找表上创建另一个列表,并将其命名为List2
  • 在您的条目表上,插入一个包含2列的Table对象。将表命名为MyTable,以及字段Field1Field2

    enter image description here

  • 创建以下定义的名称,并将其命名为ValidFmla。这是秘诀:

    =IF(MyTable[@Field1]="a", List1, List2)

  • 在Field2中选择条目单元格,然后单击数据功能区上的验证。

  • 选择“列表”类型,然后输入=ValidFmla
  • 测试出来:

    enter image description here enter image description here

好处:

  • 如果您更改表名,字段名,列表名或验证公式名称,它将不会中断 - 所有相关内容都会自动更新。

  • 支持您想要的任何复杂条件,只要验证公式返回列表范围即可。验证不必基于Field1中的值。

  • 验证列表范围可以任意命名。 dependent-lists方法需要命名验证列表范围与第一个字段中的值相同。

注意,必须使用Table对象才能使用此方法。但是,使用Table对象在验证公式中提供了结构化引用,这是一种更智能,更易读的构建公式的方法。

答案 1 :(得分:1)

保存,我们要​​在单元格 B1 中设置 DV ,所以:

  • 如果输入数字,则必须小于 A1
  • 中的值
  • 如果输入 text ,则必须在 D1 D3
  • 的列表中

以下是公式 DV

enter image description here

该公式将数字测试与限制输入到某个固定列表的能力结合起来。

答案 2 :(得分:0)

我知道这个帖子比较老,但为了完整起见,我还将提供另一个非VBA的解决方案。根据提供的大多数解决方案,OP我不相信正在寻求提供依赖列表的方法,而是希望他的选项列表按原样存在,而是对正在执行的实际选择提供额外的验证。

这实际上需要使用Excel的不同功能来更轻松地为您提供这种洞察力。条件格式。根据最初提供的OP截图:

突出显示A栏,点击条件格式(我的主页标签)&gt;新规则。选择最后一个选项,自定义公式1,然后使用公式:

=$A1>$B1

单击“格式”按钮,更改背景或其他颜色以使验证变得明显,单击“确定”。查看结果的屏幕截图,您仍然按照正常情况设置数据验证列表,以便用户从中选择值。需要注意的一点是,这不会停止输入,它只是提供输入错误的视觉确认。

Screenshot of results