Google sheets REGEXEXTRACT提取值并对一系列数字求和

Google sheets REGEXEXTRACT提取值并对一系列数字求和,google-sheets,array-formulas,google-sheets-formula,Google Sheets,Array Formulas,Google Sheets Formula,在谷歌电子表格中,我有一行随机文本和数字,例如: K、、1-3、、K、RBI-1、RBI-4 我想获得所有出现的RBI-[1-4]并对每个RBI-[1-4]的值求和。我想出了以下方法,得到了一系列我想要的东西: =ARRAYFORMULA((右(iferror(REGEXEXTRACT(A1:H1,“RBI-[1-4]”,0))) 生产: 0,0,0,0,0,0,0,1,4 但现在当我想对结果求和时,我得到了零 =ARRAYFORMULA(SUM((右)(iferror(REGEXEXTRACT

在谷歌电子表格中,我有一行随机文本和数字,例如:

K、、1-3、、K、RBI-1、RBI-4

我想获得所有出现的
RBI-[1-4]
并对每个
RBI-[1-4]
的值求和。我想出了以下方法,得到了一系列我想要的东西:

=ARRAYFORMULA((右(iferror(REGEXEXTRACT(A1:H1,“RBI-[1-4]”,0)))

生产:
0,0,0,0,0,0,0,1,4

但现在当我想对结果求和时,我得到了零

=ARRAYFORMULA(SUM((右)(iferror(REGEXEXTRACT(A1:H1,“RBI-[1-4]”),0())))

产生
0


有什么建议吗?

如果你删除公式的
右侧部分,你会看到结果实际上是0,0,0,0,0,RBI-1,RBI-4。另外,
REGEXEXTRACT
返回一个文本。我们需要把结果变成数字。向公式中添加
,我们就可以做到这一点

=ARRAYFORMULA(IFERROR(VALUE(REGEXEXTRACT(REGEXEXTRACT(A1:H1,"RBI-[0-9]+"),"[0-9]+")),0))
如果您只想得到不带零的结果,只需将其全部包装在
SUM
中即可

=SUM(ARRAYFORMULA(IFERROR(VALUE(REGEXEXTRACT(REGEXEXTRACT(A1:H1,"RBI-[0-9]+"),"[0-9]+")),0)))
我相信有一种更雄辩的方法可以做到这一点,但它是有效的

公式 解释 REGEXTRACT以文本形式返回值,因此在求和之前,我们应该将它们转换为数字

有几种方法可以做到这一点。上述公式使用值函数,但我们也可以使用
+0
*1
,以及其他方法

=ARRAYFORMULA(SUM(value((RIGHT(iferror(REGEXEXTRACT(A1:H1,"RBI-[1-4]"),0))))))