我遇到以下问题:假设我在A列中有以下四行:
Alice: $5
Bob: $12
Alice: $23
Bob: $4
我想要做的只是为Alice添加$值。我想出了这个从单行中提取数值的函数:
=if(isnumber(find("Alice", A1)),right(A1, (len(A1) - find("$",A1))),0)
这样,如果是Alice的行,则行给出$ $,如果不是,则为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)))
显然不起作用。我该怎么办?但是还有一个要求 - 我不能创建任何用于存储这些函数返回的值的列(如果可以的话,我只需创建四个新行,比如B1:B4和sum
它们)
答案 0 :(得分:1)
在以下示例中,数据集是命名范围“TestNames”
SUMPRODUCT(IF(ISERROR(FIND(“Alice”,TestNames)),0,ROWS(TestNames)^ 0)*(RIGHT(TestNames,LEN(TestNames) - FIND(“$”,TestNames))))
这是一个常规公式,不需要输入CSE