我阅读了一些有助于条件(或动态)数据验证的教程,但它通常根据之前的选择动态生成列表项选择等。
我想要的是,让我说我有
columnA : columnB
telephone_number : 911
name: peterparker
我是否可以根据columnA中选择的内容在columnB上动态指定数据验证规则?如果是telephone_number,我想检查columnB中对应的单元格是自然数,如果是名称,我想检查一定长度的字符串。当然,我限制用户可以在columnA中输入的字符串选项。
答案 0 :(得分:2)
关于自定义验证规则的以下公式将执行:
=IF(A1="telephone_number";ISNUMBER(B1);IF(A1="name";LEN(B1)=8;TRUE))
这是B1
中单元格的示例。您可以选择更宽的范围并组合$
以使您的公式适应所有范围。
答案 1 :(得分: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 Rule
,Use a formula to determine....
)并输入公式=Not(DynamicValidation)
,如下所示:< / p>
然后每个不遵守公式的细胞将变为红色。我也尝试过使用数据验证,但除非我们每次更改List 2
时都构建依赖树,否则它不起作用。我不知道为什么..但只有条件格式才有效:)以下是一些截图:
好处是我们可以在不进行硬编码的情况下更改验证标准。 我希望这有帮助!