如何对公式预先评估的范围求和

Posted

技术标签:

【中文标题】如何对公式预先评估的范围求和【英文标题】:How to SUM a range preevaluated by a formula 【发布时间】:2019-03-26 12:36:13 【问题描述】:

假设我们有两个单元格 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】:

A1A10 中的数据,选择一个单元格并输入:

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

公式将second逗号后的字符串隔离开来;将其转换为整数;然后对整数求和。

(请确保您的 SUMPRODUCT() 仅涵盖包含数据的单元格而不是任何空白单元格)

编辑#1:

一个稍微短一点的公式是:

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

编辑#2:

“更短”公式通过将所有逗号替换为大量空格来起作用,事实上,空格太多了,以至于当我们查看扩展字符串的 RIGHT() 部分时,我们看到的只是空格,后面跟着一些数字. TRIM() 删除这些空格,留下数字。

【讨论】:

非常感谢!像魅力一样工作:D 你介意解释一下较短的公式是如何工作的吗? @ZuJiry 查看我的EDIT#2 所以我们得到了数字,然后 SUMPRODUCT 将它们相加。很酷!再次感谢;)

以上是关于如何对公式预先评估的范围求和的主要内容,如果未能解决你的问题,请参考以下文章

如何在空白行之间插入动态公式?

Excel 自动填充和调整公式

在excel表格中设置啥公式能按类别自动求和

如何在 C# Excel 互操作中格式化公式结果?

SUMIF 公式中的嵌套 MIN

excel去重多条件求和,公式怎么设置?