Google表格在Arrayformula中的Sum()中返回false值

时间:2015-01-16 09:11:31

标签: google-sheets array-formulas

我有一列样本数据,其中每个单元格为空白或(3个字母字符,1个空格,1个数字)。例如:

enter image description here 我需要检查单元格是以GTR还是DBT开头,然后返回数字,并对列的返回值求和。我使用下面的公式:

= ARRAYFORMULA(总和(IF(OR(左(A1:A10,3)=" GTR",左(A1:A10,3)=" DBT" ),VALUE(右(A1:A10,1)),0)))

问题是,它不是返回20,而是返回52.实际上它似乎返回范围内任何单元格的最后一个字符。例如。如果A5的值为' someText'公式返回错误,因为value()无法解析' t'变成一个数字。我想知道是否有人可以告诉我如何解决这个问题,或者我的公式是否有问题?

以下是Google表格中此问题的一个示例: https://docs.google.com/spreadsheets/d/1XNVUWhI43UW2ABrja8rmplmxhhkSu-je45F-9F_3GQM/edit#gid=0

谢谢, Onji

2 个答案:

答案 0 :(得分:0)

如果范围中的任何单元格在编码中,则ArrayFormulaOR将评估为TRUE,以克服此删除OR,并添加IF对于每个条件,如此:

=ARRAYFORMULA(sum(IF(left(A1:A10;3)="GTR";VALUE(right(A1:A10;1));0);IF(left(A1:A10;3)="DBT";VALUE(right(A1:A10;1));0)))

答案 1 :(得分:0)

除了Kriggs的解决方案,这个公式也应该有效:

=ArrayFormula(sum(if(regexmatch(B3:B12, "GTR|DBT")=TRUE, right(B3:B12)+0,)))