REGEXEXTRACT提取值并汇总一系列数字

时间:2018-10-26 00:14:05

标签: google-sheets array-formulas google-sheets-formula

在Google电子表格中,我有一排随机的文本和数字,例如:

K,,,1-3,,K,RBI-1,RBI-4

我想获取所有RBI-[1-4]的出现并求和每个RBI-[1-4]的值。我想出了以下方法,可以使我得到想要的结果:

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

产品:
0,0,0,0,0,0,1,4

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

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

生产
0

有什么建议我要去南边吗?

2 个答案:

答案 0 :(得分:1)

公式

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

说明

REGEXTRACT以TEXT返回值,因此在求和之前,我们应该将它们转换为数字。

有几种方法可以做到这一点。上面的公式使用VALUE函数,但我们也可以使用+0*1等方法。

答案 1 :(得分:0)

如果要删除公式的RIGHT部分,则会看到结果实际上是0,0,0,0,0,0,0,RBI-1,RBI-4。另外,REGEXEXTRACT返回文本。我们需要将结果转换为数字。在公式中添加VALUE将为我们做到这一点。

=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)))

我敢肯定,有一种更雄辩的方法可以做到这一点,但它确实有效。