【发布时间】:2017-09-08 12:52:59
【问题描述】:
我正在尝试在 Excel 中编写一个自定义验证函数,以确保单元格中的文本以 http:// 或 https:// 开头。如果我使用公式
=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 函数:
=OR(EXACT(LEFT(INDIRECT("Z"&ROW()), 8), "https://"), TRUE)
这也评估为 FALSE!我疯了还是 OR 函数坏了?我发现将这个方程粘贴到单元格中时效果很好。仅在用作自定义验证函数时不起作用。
【问题讨论】:
-
不是问题,而是为什么在简单的输入
Z3或任何行号是验证的第一行时不必要地使用 voltile INDIRECT? -
Excel 2016 给出“公式当前计算为错误,您要继续吗?”在那一个。像@ScottCraner 所说的那样删除
INDIRECT可以修复它(错误消息和公式逻辑)。 -
@ScottCraner 我使用了 INDIRECT() 和 ROW() 因为我希望选择整个列,然后对其应用此验证。
-
然后改用
$Z1。只要引用左上角单元格,Excel就会使相关部分正确迭代,不需要104万个易失公式。 -
那行得通。仍然不确定为什么我最初的尝试没有奏效。
标签: excel logical-or