我阅读了一些帮助进行条件(或动态)数据验证的教程,但它通常是根据以前的选择动态生成列表项选择等。
我想要的是,让我说
columnA : columnB
telephone_number : 911
name: peterparker我是否可以根据在columnB中选择的内容动态地指定columnA上的数据验证规则?如果它是telephone_number,我想检查columnB中对应的单元格是否是一个自然数,如果它是一个名称,我想检查一个字符串的长度。当然,我限制了用户可以在columnA中输入的字符串选项。
发布于 2013-10-08 15:09:35
数据验证的一个替代方法是条件格式。后者的好处是它具有更多的用途。我们可以有以下设置:

然后,如果我们定义一个名称,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),如下所示:

然后,每个不遵守公式的单元格都会变成红色。我也尝试过使用数据验证,但除非我们每次更改List 2时都构建依赖树,否则它就无法工作。我不知道为什么..。但只有条件格式工作:)下面是一些屏幕截图:


好处是我们可以在不需要硬编码的情况下更改验证标准。我希望这能帮到你!
发布于 2013-10-08 13:57:21
以下是关于自定义验证规则的公式:
=IF(A1="telephone_number";ISNUMBER(B1);IF(A1="name";LEN(B1)=8;TRUE))这是B1中单元格的示例。您可以选择一个更宽的范围,并结合$,以使您的公式适合所有范围。
https://stackoverflow.com/questions/19249416
复制相似问题