Excel验证中的OR函数是否被破坏?
我试图在Excel中编写自定义验证函数,以确保单元格中的文本以http://
或https://
开头。如果我使用式Excel验证中的OR函数是否被破坏?
= EXACT(LEFT(INDIRECT( “Z” & ROW()),8), “https://开头”)
验证工作,但仅检查https://开头。如果我添加一个OR这样
= OR(EXACT(LEFT(INDIRECT( “Z” & ROW()),8), “HTTPS://”),EXACT(LEFT(INDIRECT(“Z “& ROW()),7),”http://“))
它不起作用;它总是评估为假。然后我尝试以下只是为了测试或功能:
= OR(EXACT(LEFT(INDIRECT( “Z” & ROW()),8), “HTTPS://”),TRUE)
并且这也评估为假!我疯了还是OR功能坏了?我发现当把这个方程粘贴到一个单元中时,它工作得很好。它仅用作自定义验证函数时不起作用。
如果有一天你需要包括第三个条件,尝试这样的:
=OR(LEFT(D1,8)="https://",
LEFT(D1,7)="http://")
这将不Exact()
工作。 正如在评论中指出的,If()
也是不需要的。
为什么不是'= OR( (LEFT(D1,8)=“https://”,1), (LEFT(D1,7)=“http://”,1))'已经是布尔? – user1016274
我喜欢在公式中添加新的线条,看起来更好。 @ user1016274 – Vityata
我的意思是:你不需要'IF()'函数,因为表达式本身已经是一个布尔值。不是关于换行符。 – user1016274
不是问题,但为什么当一个简单的把'Z3'或什么行数作为验证的第一行时,不必要的使用voltile INDIRECT? –
Excel 2016提供了“公式当前评估为错误,您希望继续吗?”在那一个上。像@ScottCraner一样去除'INDIRECT'表示修复了它(错误信息和公式逻辑)。 – GSerg
@ScottCraner我使用了INDIRECT()和ROW(),因为我希望选择整个列,然后对其应用此验证。 – PICyourBrain