如何求和由公式预先计算的范围

时间:2019-03-26 12:36:13

标签: excel-formula

假设我们有两个单元格A1和A2:

A1: A, B, 13
A2: C,B,14

哪个是字符串。我想在每个单元格字符串的末尾添加值。 因此,我要做的是提取特定单元格的值:

=VALUE(RIGHT(A1, SEARCH(",",A1))))

返回13作为VALUE(或int)。

现在,有没有办法在SUM函数中添加A1和A2?我找不到一种方法来遍历SUM范围中的每个A单元并对其执行VALUE魔术。

一个非常麻烦的解决方案是像这样将所有值加在一起:

=SUM(VALUE(RIGHT(A1, SEARCH(",",A1))),VALUE(RIGHT(A2, SEARCH(",",A2))))

但这似乎不是最佳的。我尝试使用IF,但似乎缺少的只是While / For循环来迭代范围。

1 个答案:

答案 0 :(得分:1)

通过 A10 将数据保存在 A1 中,选择一个单元格并输入:

=SUMPRODUCT(--(TRIM(MID(SUBSTITUTE(A1:A10,",",CHAR(1),2),FIND(CHAR(1),SUBSTITUTE(A1:A10,",",CHAR(1),2))+1,9999))))

该公式将后的字符串分隔开;将其转换为整数;然后对整数求和。

enter image description here

(请确保您的SUMPRODUCT()仅覆盖具有数据的单元格,而不覆盖任何空白单元格)

EDIT#1:

一个简短的公式是:

=SUMPRODUCT(--TRIM(RIGHT(SUBSTITUTE(A1:A10,",",REPT(" ",LEN(A1:A10))),LEN(A1:A10))))

EDIT#2:

“较短”公式的工作原理是用大量空格替换所有逗号,实际上是很多空格,以至于当我们查看扩展字符串的RIGHT()部分时,我们看到的都是空格后跟一些数字。 TRIM()删除了这些空格,留下了数字。