在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
有什么建议我要去南边吗?
答案 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)))
我敢肯定,有一种更雄辩的方法可以做到这一点,但它确实有效。