如何在谷歌电子表格中的过滤器公式中显示零代替错误

use*_*050 11 google-sheets google-apps-script

我是谷歌电子表格功能的新手,并试图通过以下方式应用公式:

我在一个工作簿(name-formula4)中有sheet1和sheet2,我正在使用以下公式从sheet1到sheet2进行过滤范围的sumproduct:

=SUMPRODUCT(filter(Sheet1!$A$1:$A$401, (Sheet1!$B$1:$B$401>= E1) * (Sheet1!$B$1:$B$401<= E2)))
Run Code Online (Sandbox Code Playgroud)

当选择范围时,公式完全正常(Sheet1!$ B $ 1:$ B $ 401> = E1)*(Sheet1!$ B $ 1:$ B $ 401 <= E2)有一些值并且不为空,但是如果我离开单元格如果所述范围为空(sheet1!b1:b3),则需要满足标准,然后给出错误"在过滤器评估中未找到匹配".在坚果壳中我想显示"0"而不是显示错误或"NA".

请注意,我无法填充整个选定的B列,因为它从表单接收实时数据而不是先前确定的数据.

请查看以下链接以获取详细信息并帮助纠正上述公式:

https://docs.google.com/spreadsheets/d/1HTXf4VG2JupiP9UqCLRyAddYjhsom1leQOI9-DwfMaY/edit#gid=0

Vas*_*sim 15

=IFERROR(SUMPRODUCT(filter(Sheet1!$A$1:$A$401, (Sheet1!$B$1:$B$401>= E1) * (Sheet1!$B$1:$B$401<= E2))),0)
Run Code Online (Sandbox Code Playgroud)


小智 6

我不推荐 IFERROR,因为它会抑制所有类型的错误。这不是一个好的做法。

你应该做的是...

如果过滤器返回 0 个项目,则仅显示 0

否则,显示所有项目的总和。

=IF(COUNT(FILTER(_range_,_condition_)) = 0, 0, SUM(FILTER(_range_,_condition_)))
Run Code Online (Sandbox Code Playgroud)


小智 6

我的床单也有同样的问题。我同意上面的评论隐藏错误不是最佳实践。但是隐藏 N/A 响应/自定义它非常有用!您需要将整个逻辑包装在 NA 语句中,以便首先从它开始。以下是如何使用您正在使用的公式执行此类操作。

=IFNA(SUMPRODUCT(FILTER((Sheet1!$A$1:$A$401,
     (Sheet1!$B$1:$B$401>= E1)*(Sheet1!$B$1:$B$401<= E2))),
     "input text or response you want here")
Run Code Online (Sandbox Code Playgroud)

将“在此处输入您想要的文本或回复”更改为您想要回复的内容。如果您只希望它返回一个数值,例如0,您可以删除末尾的引号和文本响应,然后只输入数字。不要忘记,括号后的逗号 ( )!
它应该是这样的:

=IFNA(SUMPRODUCT(FILTER((Sheet1!$A$1:$A$401,
       (Sheet1!$B$1:$B$401>= E1)*(Sheet1!$B$1:$B$401<= E2))),0)
Run Code Online (Sandbox Code Playgroud)

  • `IFNA()` 是为了解决这个错误而创建的,并且是正确的解决方案。 (2认同)