Excel验证中的或函数是否已损坏?

Excel验证中的或函数是否已损坏?,excel,logical-or,Excel,Logical Or,我试图在Excel中编写一个自定义验证函数,确保单元格中的文本以http://或https://开头。如果我用这个公式 =精确(左(间接(“Z”)和行()),8,“https://”) 验证有效,但只检查https://。如果我添加一个或类似的 =或(精确(左(间接(“Z”)和行()),8),“https://”)精确(左(间接(“Z”)和行()),7),“http://”) 它不起作用;它的计算结果总是错误的。然后,我尝试了以下方法来测试OR函数: =或(精确(左(间接(“Z”)和行()),8

我试图在Excel中编写一个自定义验证函数,确保单元格中的文本以
http://
https://
开头。如果我用这个公式

=精确(左(间接(“Z”)和行()),8,“https://”)

验证有效,但只检查https://。如果我添加一个或类似的

=或(精确(左(间接(“Z”)和行()),8),“https://”)精确(左(间接(“Z”)和行()),7),“http://”)

它不起作用;它的计算结果总是错误的。然后,我尝试了以下方法来测试OR函数:

=或(精确(左(间接(“Z”)和行()),8,“https://”),真)


这也算是假的!我疯了吗?还是功能被破坏了?我发现在单元格中粘贴这个方程时效果很好。它仅在用作自定义验证功能时才起作用。

如果有一天您需要包括第三个条件,请尝试以下操作:

=OR(LEFT(D1,8)="https://",
    LEFT(D1,7)="http://")
它将在没有
Exact()
的情况下工作。
如注释中所述,
If()
也不需要。

这不是问题,但为什么在简单的putting
Z3
或验证的第一行是什么行号时不需要使用voltile间接?Excel 2016给出了“公式当前评估为错误,您希望继续吗?”。删除像@ScottCraner said这样的
间接
可以修复它(错误消息和公式逻辑)。@ScottCraner我使用了间接()和行(),因为我希望选择整个列,然后对其应用此验证。然后改为使用
$Z1
。只要引用左上角的单元格,Excel就可以使相关部分正确地迭代,而不需要104万个易失性公式。这是有效的。仍然不知道为什么我最初的尝试没有成功。为什么不干脆
=或者((左(D1,8)=“https://”,1),(左(D1,7)=“http://”,1))
,因为这两个表达式都已经是布尔表达式了?我喜欢在公式中添加新行,看起来更好@user1016274I的意思是:您不需要
IF()
函数,因为表达式本身已经是布尔值。不是关于换行符。@user1016274-我明白你的意思了,因此它确实好一点,你必须从公式中删除
1
,它才有效。因此,我编辑了答案。