1

我有一个范围,包含数值和空白单元格。一些数值将以 * 作为后缀。

10* 5 7  9  25* 10

当我执行 SUM(A1:A8) 时,我得到 5+7+9+10 = 31 的结果,即所需的输出。现在,无论 * 后缀如何,我还需要总和。我正在尝试通过使用来解决

SUMPRODUCT(SUBSTITUTE(A1:A8,"*",""))

结果是

SUMPRODUCT({"10","5","7","","9","","25","10"})

并输出 0 因为都是文本值。当我使用

SUMPRODUCT(value(SUBSTITUTE(A1:A8,"*","")))

结果是

SUMPRODUCT({10,5,7,#VALUE!,9,#VALUE!,25,10})

最后输出#Value!。有人可以帮我解决这个问题吗?谢谢你的时间。

4

2 回答 2

5

我认为空白是问题所在,因为当您使用 =VALUE("") 时会出现错误。尝试将零连接到 SUBSTITUTE 的开头,以便空白变为零

=SUMPRODUCT(VALUE(0&SUBSTITUTE(A1:A8,"*","")))

或者您可以使用 +0 代替 VALUE,即

=SUMPRODUCT((0&SUBSTITUTE(A1:A8,"*",""))+0)

于 2012-06-21T09:42:13.863 回答
0

尝试

=SUM(VALUE(SUBSTITUTE(A1:A8,"*","")))

并使用 Ctrl + Shift + Enter 输入,而不仅仅是 Enter。这使它成为一个数组公式,并将A1:A8范围视为SUBSTITUTE()函数的数组。因此,SUBSTITUTE()现在分别评估 A1:A8 中的每个单独的值。VALUE()将文本转换为数字,然后 sum() 将它们全部相加。

编辑:这个公式=SUMPRODUCT(VALUE(SUBSTITUTE(A1:A8,"*","")))似乎对我有用。(普通公式,不是数组公式)。

于 2012-06-21T09:38:32.537 回答