函数 AVERAGE 的计算导致除以零错误

Evaluation of function AVERAGE caused a divide by zero error

Google sheets中,我只是通过Data Validation输入了以下值。

google sheet 中输入值范围后,它看起来如下所示:

从上图看:

我想取介于两者之间的范围内的输入下拉值的平均值 B6 and B14.

我应用了一个公式=Average(B6,B14)。但是,它显示错误消息。

错误!

Evaluation of function AVERAGE caused a divide by zero error.

谁知道怎么解决。提前致谢!

使用这个效果:

=ARRAYFORMULA(AVERAGE(IFERROR(REGEXEXTRACT(B6:B14; "\d+")*1)))

您可以使用以下公式:

=AVERAGE(ARRAYFORMULA(REGEXEXTRACT(B6:B14, "\d+")*1))

说明

给定字符串的 =REGEXTRACT() function will extract the first match of a regular expression。在这种情况下,将提取第一个数字链。

之后,将函数的结果乘以1。这样做是为了将=REGEXTRACT()的结果类型从字符串转换为数字,以便我们之后计算平均值。

=REGEXTRACT(),默认情况下,对单个字符串进行操作 - 但不能同时对多个单元格进行操作。出于这个原因,我们必须用 =ARRAYFORMULA() 包装调用,这将允许使用范围作为参数调用它。

最后,=AVERAGE()函数被调用。

处理空单元格

对于之前的响应,给定一个范围,其中至少有一个单元格 empty/doesn 不符合 =REGEXTRACT() 调用中指定的正则表达式,将返回错误。我们有两个主要选项来处理这种情况:

  1. 忽略单元格。平均计算将完全忽略该单元格:

    =AVERAGE(ARRAYFORMULA(IFERROR(REGEXEXTRACT(B6:B14, "\d+")*1, "")))
    
  2. 将单元格视为 0 平均计算。

    =AVERAGE(ARRAYFORMULA(IFERROR(REGEXEXTRACT(B6:B14, "\d+")*1, 0)))
    

两种解决方案都使用了=IFERROR()函数。如果调用 =REGEXTRACT() returns 出错,该值将分别替换为空字符串(不计入平均计算)或 0。