regex 函数AVERAGE的求值导致除以零错误

erhoui1w  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(156)

Google sheets中,我只是通过Data Validation输入以下值。
x1c 0d1x的数据
google sheet中输入值的范围后,它看起来如下所示:



由上图可知:
我想在B6 and B14之间的范围内取输入的下拉值的平均值。
我应用了一个公式=Average(B6,B14)。但是,它显示错误消息。
错误!

Evaluation of function AVERAGE caused a divide by zero error.

字符串
任何人都知道如何解决它。提前感谢!

wko9yo5t

wko9yo5t1#

您可以使用下列公式:

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

字符串
解释说明
=REGEXTRACT()函数将提取给定字符串的正则表达式的第一个匹配项。在这种情况下,将提取第一个数字链。
然后,将函数的结果乘以1。这样做的目的是将=REGEXTRACT()的结果类型从字符串转换为数字,以便我们可以在以后计算平均值。
默认情况下,=REGEXTRACT()对单个字符串进行操作,但不能同时对多个单元格进行操作。因此,我们必须用=ARRAYFORMULA()来 Package 调用,这样就可以用一个范围作为参数来调用它。
最后,调用=AVERAGE()函数。

处理空单元格

在前面的响应中,给定一个范围,其中至少有一个单元格为空/不符合=REGEXTRACT()调用中指定的正则表达式,将返回一个错误。我们有两个主要选项来处理这种情况:
1.忽略细胞。在计算平均值时将完全忽略该单元格:

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


1.将单元格视为0进行平均值计算。

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


这两种解决方案都使用=IFERROR()函数。如果对=REGEXTRACT()的调用返回错误,则该值将分别替换为空字符串(在平均值计算中不计算)或0。

xwmevbvl

xwmevbvl2#

使用FX:

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

字符串

相关问题