假设我们有两个单元格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循环来迭代范围。
答案 0 :(得分:1)
通过 A10 将数据保存在 A1 中,选择一个单元格并输入:
=SUMPRODUCT(--(TRIM(MID(SUBSTITUTE(A1:A10,",",CHAR(1),2),FIND(CHAR(1),SUBSTITUTE(A1:A10,",",CHAR(1),2))+1,9999))))
该公式将秒后的字符串分隔开;将其转换为整数;然后对整数求和。
(请确保您的SUMPRODUCT()
仅覆盖具有数据的单元格,而不覆盖任何空白单元格)
EDIT#1:
一个简短的公式是:
=SUMPRODUCT(--TRIM(RIGHT(SUBSTITUTE(A1:A10,",",REPT(" ",LEN(A1:A10))),LEN(A1:A10))))
EDIT#2:
“较短”公式的工作原理是用大量空格替换所有逗号,实际上是很多空格,以至于当我们查看扩展字符串的RIGHT()
部分时,我们看到的都是空格后跟一些数字。 TRIM()
删除了这些空格,留下了数字。