Google Arrayformula 中 Sum 的 Sheets right() 返回错误值

Google Sheets right() in Sum in Arrayformula returning false values

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

我需要检查单元格是否以“GTR”或“DBT”开头,然后是 return 数字,然后对列的 return 求和。我正在使用以下公式:

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

问题是 returning 20,它 returns 52.

事实上,它似乎 return 范围内任何单元格的最后一个字符。 (例如,如果“A5”的值为 'someText',则公式 return 是错误的,因为 value() 无法将 't' 解析为数字。

我想知道是否有人可以告诉我如何解决这个问题,或者我的公式是否有问题?

这是 Google Sheet 中此问题的示例: https://docs.google.com/spreadsheets/d/1XNVUWhI43UW2ABrja8rmplmxhhkSu-je45F-9F_3GQM/edit#gid=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)))

除了Kriggs的解,这个公式应该也可以:

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