在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
有什么建议我该往南走吗?
发布于 2018-10-26 09:56:46
公式
=ARRAYFORMULA(SUM(value((RIGHT(iferror(REGEXEXTRACT(A1:H1,"RBI-[1-4]"),0))))))解释
REGEXTRACT以文本形式返回值,因此在对它们求和之前,我们应该将它们转换为数字。
有几种方法可以做到这一点。上述公式使用值函数,但我们也可以使用+0、*1等方法。
发布于 2018-10-26 09:56:29
如果你去掉公式的RIGHT部分,你会看到结果实际上是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)))我相信有一种更有说服力的方法可以做到这一点,但它是有效的。
https://stackoverflow.com/questions/52999744
复制相似问题