求和函数返回的数值,而不是为它们创build新的列/行

我有一个下面的问题:让我们假设在列A中有以下四行:

Alice: $5 Bob: $12 Alice: $23 Bob: $4 

我想要做的只是Alice的总和值。 我想出了这个函数从单行中提取数值:

 =if(isnumber(find("Alice", A1)),right(A1, (len(A1) - find("$",A1))),0) 

这样,如果是爱丽丝行,那么一行会给我一个$值,如果不是,则给它一个0。 如果需要的话,可以很容易地将它重新用于Bob。 问题是,通常我只是使用sum函数来求和列( =sum(A1:A4) )中的所有数据,但是以这种方式将它用于函数:

 =sum((if(isnumber(find("Alice", A1)),right(A1, (len(A1) - find("$",A1))),0)):(if(isnumber(find("Alice", A4)),right(A4, (len(A4) - find("$",A4))),0))) 

显然不起作用。 我应该怎么做? 还有一个要求 – 我不能创build任何列来存储这些函数返回的值(如果可以的话,我只需创build四个新的行,比如B1:B4,然后sum它们)。

在以下示例中,数据集是命名范围“TestNames”

SUMPRODUCT(IF(ISERROR(FIND(“Alice”,TestNames)),0,ROWS(TestNames)^ 0)*(RIGHT(TestNames,LEN(TestNames) – FIND(“$”,TestNames))))

这是一个常规公式,不需要用CSEinput