如何对公式预先评估的范围求和
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】:A1 到 A10 中的数据,选择一个单元格并输入:
=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 将它们相加。很酷!再次感谢;)以上是关于如何对公式预先评估的范围求和的主要内容,如果未能解决你的问题,请参考以下文章