我该如何避免使用"#DIV/0!" Google文档电子表格中的错误?

Aar*_*ver 59 divide-by-zero google-sheets

我有一个列,当通过单元格为空时average(K23:M23)开始.我希望只做包含非零,非空白值的单元格的平均值.我认为使用query命令是可能的:#DIV/0!K23M23

https://docs.google.com/support/bin/answer.py?hl=en&answer=159999

但他们的榜样对我没有帮助.

小智 119

用你的配方包裹IFERROR.

=IFERROR(yourformula)
Run Code Online (Sandbox Code Playgroud)

  • 可能有助于了解您可以指定默认值:`=IFERROR(K23/M23, "Invalid data")`。[来源](https://support.google.com/docs/answer/3093304?hl=en) (5认同)
  • 这似乎是最简单的答案,虽然我希望谷歌添加功能,以允许检查特定类型的错误.将函数包装在通用IFERROR中会使得在发生不同错误时更难调试. (4认同)
  • 这打破了逻辑和编程中的一些非常基本的原则。如果知道要避免的错误/异常,则应该以这种方式显式处理它。从这个意义上说,百富勤的答案更好。但我会再发布一个答案。 (2认同)

per*_*ion 33

您可以使用IF语句检查引用的单元格并返回一个结果为零或空白,否则返回您的公式结果.

一个简单的例子:

=IF(B1=0;"";A1/B1)
Run Code Online (Sandbox Code Playgroud)

如果除数B1为空或零,则返回空字符串; 否则返回A1除以B1的结果.

在运行平均值的情况下,您可以检查数据集是否具有值:

=IF(SUM(K23:M23)=0;"";AVERAGE(K23:M23))
Run Code Online (Sandbox Code Playgroud)

如果没有输入任何内容,或只有零,则返回一个空字符串; 如果存在一个或多个值,则获得平均值.


pnu*_*uts 5

将现有公式包装在 IFERROR 中将无法实现:

包含非零、非空值的单元格的平均值。

我建议尝试:

=if(ArrayFormula(isnumber(K23:M23)),AVERAGEIF(K23:M23,"<>0"),"")
Run Code Online (Sandbox Code Playgroud)