excel - 带有 OR 标准和 ISERROR 的 IF 语句

标签 excel error-handling excel-formula

我有一个不起作用的公式。

=IF(OR(AC358="",ISERROR(AC358), AC358=0),VLOOKUP(M358,FCal,3,TRUE),VLOOKUP(AC358,FCal,3,TRUE)

列 AC 中有一个 vlookup,它将返回实际值 0 或错误 #N/A。

当 AC(vlookup)返回 #N/A 错误时,IF 语句以其当前格式失败。

但是,当我执行以下任一操作时,IF 语句都会起作用

  1. 将实数值或零硬编码到 AC 中,或者

  2. 如果我仅用一个条件替换 OR 条件 ISERROR(AC358)

所以我知道 ISERROR 本身可以工作,但它在 OR 语句中不起作用。

最佳答案

使用 ISERROR 或 ISNA 检查错误必须与其他计算分开进行;您不能在 OR 中嵌套使用更常规标准的错误检查。对包含 #N/A 的单元格进行检查的 OR 将返回 #N/A,而不是 TRUE 或 FALSE。 =IF(ACD358=0, TRUE, FALSE) 当 ACD358 包含 #N/A 错误时不返回 FALSE;它返回#N/A。

=IF(ISNA(AC358), VLOOKUP(M358, FCal, 3), IF(OR(AC358="", AC358=0), VLOOKUP(M358, FCal, 3), VLOOKUP(AC358, FCal, 3)))

当错误检查返回 TRUE 时,处理立即转到第一个 M358 VLOOKUP function ;其他IF和OR不计算。

鉴于空白、零或 #N/A 可能会从 FCal 返回另一个 #N/A,也许这个较短的版本带有 IFERROR会更好。

=IFERROR(VLOOKUP(AC358, FCal, 3), VLOOKUP(M358, FCal, 3))

TRUE 是 VLOOKUP 的 range_lookup 参数的默认值。除了为了清楚起见而将其包括在内之外,这是没有必要的。

关于excel - 带有 OR 标准和 ISERROR 的 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37695991/

相关文章:

python - 正则表达式从 CSV 中删除双引号

vba - "Application.Calculation = xlCalculationManual"语句导致 VBA 复制粘贴过程中出现运行时错误 1004

vbscript - 如何忽略VBScript中的Internet错误?

excel - 最小化指定数量的小计组中的差异

excel - 使用动态命名范围进行级联数据验证的问题

excel - 从网页获取链接/URL - Excel VBA

algorithm - 堆排序算法错误

ruby-on-rails - Heroku上的Rails 4中的自定义错误页面

tensorflow - 我在将tensorflow导入为tf时出错?

Excel : Look up concatenate with aggregation (sum)