2

我阅读了一些有助于条件(或动态)数据验证的教程,但它通常会根据先前的选择等动态生成列表项选择。

我想要的是,假设我有

columnA : columnB
telephone_number : 911
name: peterparker

我是否可以根据在 columnA 中选择的内容动态指定 columnB 上的数据验证规则?如果它的电话号码,我想检查列 B 中的相应单元格是否是自然数,如果是名称,我想检查一个字符串是否有一定的长度。当然,我限制了用户可以在 columnA 中输入的字符串选项。

4

2 回答 2

2

以下关于自定义验证规则的公式将执行以下操作:

=IF(A1="telephone_number";ISNUMBER(B1);IF(A1="name";LEN(B1)=8;TRUE))

这是单元格 in 的示例B1。您可以选择更广泛的范围并结合起来$以使您的公式适应所有范围。

于 2013-10-08T13:57:21.563 回答
0

数据验证的替代方法是条件格式。后者的好处是它更通用。我们可以有以下设置:

在此处输入图像描述

那么如果我们定义一个名字,DynamicValidation如下:

在此处输入图像描述

验证框中的公式是

=EVALUATE(SUBSTITUTE(VLOOKUP(Sheet1!$A2,Sheet1!$D$2:$E$3,2,0),"()","("&ADDRESS(ROW(),2)&")"))

EVALUATE不能在任何工作表单元格中使用,可以在命名范围中使用。但是,您必须将您的图书保存为启用宏,因为它是一个旧版宏,源自Excel 4.0. 它的作用如下:

  • 查看中的值List1并找到需要检查的公式 ( VLOOKUP)。
  • 用感兴趣"()"的单元格值替换(并加回括号)。

然后,如果您打开一个条件格式框(Home选项卡Conditional Formatting、、、、New RuleUse a formula to determine....并输入如下公式=Not(DynamicValidation)

在此处输入图像描述

那么每个不符合公式的单元格都会变成红色。我也尝试过数据验证,但它不起作用,除非我们每次更改时都构建依赖树List 2..我不知道为什么..但只有条件格式有效:) 以下是一些屏幕截图:

在此处输入图像描述

在此处输入图像描述

好处是我们可以在不进行硬编码的情况下更改验证标准。我希望这有帮助!

于 2013-10-08T15:09:35.220 回答