【问题标题】:Using error handling within a formula which has multiple parts在包含多个部分的公式中使用错误处理
【发布时间】:2019-07-23 01:15:31
【问题描述】:

我正在尝试将错误处理作为以下公式的一部分来实现,以说明每个区域中根本没有值的单元格并返回“#NUM!”错误:

{=SUMPRODUCT(R2:T2,U2:W2)/SUM(R2:T2)}

到目前为止,在拆分上面的主要公式时,我已经使用 IF 和 ISNUMBER 组合(如下所示)获得了一些运气,但是在为每个部分/单元格范围实施它时我正在苦苦挣扎。我的尝试:

{=SUMPRODUCT(IF(ISNUMBER(R3:T3),R3:T3))}

任何帮助将不胜感激!

【问题讨论】:

  • 为什么是 {} ?第一个不需要 CSE。
  • 提供 6 个有效的值 (R2:W2)。提供另外 6 个不起作用的值 (R3:W3)。提供预期的结果和返回的错误代码。

标签: excel error-handling excel-formula


【解决方案1】:

你原来的公式,没有错误处理,可以正常输入。它不需要 Ctl+Shift+Enter。它也不会产生 #NUM 错误,因为 SUM() 和 SUMPRODUCT() 函数都将非数字值解释为零。因此,如果您收到 #NUM 错误,则该错误将由 R2:W2 范围内的公式创建。您应该在此处引入错误处理,而不是在我们在这里查看的公式中。

如果 SUM(R2:T2) 等于零,此处的公式(即您的第一个原始公式)将产生除以零错误。如果出现此类错误,=IFERROR(SUMPRODUCT(R2:T2,U2:W2)/SUM(R2:T2),0) 将返回零。如果您愿意,可以将公式修改为 =IFERROR(SUMPRODUCT(R2:T2,U2:W2)/SUM(R2:T2),"ERROR") 之类的内容。

如果从 R2:W2 继承了未处理的错误,这种错误处理程序也会生效。我的建议是在发生错误的地方处理错误,但如果您希望在我们正在查看的公式中使用更具体的错误处理程序,下面的公式将允许导入的 #NUM 错误通过,并且仅处理此公式产生的 #DIV BY ZERO 错误. =SUMPRODUCT(R3:T3,U3:W3)/IF(SUM(R3:T3),SUM(R3:T3),1) 如果 SUM(R3:T3) 等于 0,则此公式将 SUMPRODUCT() 函数的结果除以 1。这将返回公式 0 的结果,因为 SUMPRODUCT 部分将返回零(除非它继承 #NUM 错误)。

【讨论】:

  • 谢谢 Variatus,我看错了。我将 IFERROR 添加到参考单元格以在任何空白的情况下返回 0,现在生成的 SUMPRODUCT/SUM 公式返回预期的输出。
猜你喜欢
  • 1970-01-01
  • 2015-09-28
  • 2013-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多