【问题标题】:Excel Formula - SUM LEFT on non-blank cellsExcel 公式 - 非空白单元格上的 SUM LEFT
【发布时间】:2021-04-15 12:31:08
【问题描述】:

在下表column E 中,我尝试提取括号前的数字(此处为4 and 5),然后返回提取值的总和(此处为4 + 5 = 9

主要问题是LEFT函数不能处理空白单元格,所以我结合IF函数将空白单元格替换为“0”。但不知何故,LEFT 函数再次将“0”替换为空白,但它不起作用。

对“列中的左数求和”的正确公式有什么建议吗?

【问题讨论】:

    标签: excel vba sum formula


    【解决方案1】:

    您可以使用以下方法绕过错误。

    =SUMPRODUCT(--LEFT("0"&E23:E25,FIND("(",E23:E25&"(")))

    这里我们在数字前面加上 0,这对每个数据的值没有影响,然后我们在数据后面加上额外的“(”,这在使用 FIND 函数搜索时适用于空白单元格。

    【讨论】:

    • 很好地使用连接 =)
    • 谢谢@JvdV,我第一次在MrExcel上看到这个(我认为是版主叫Peter_SSs),偶尔用过一次,而不是错误功能。
    • @AliTabaraei - 请允许我评论一下,因为您有几个有效的答案 - 它很好用,如果您发现它有帮助,其他读者也可以将首选的答案标记为已接受(接受用彩色表示答案旁边的复选标记)。参考文献"Someone answers"
    【解决方案2】:

    你可以使用:

    =SUMPRODUCT(--IFERROR(LEFT(E23:E25,FIND("(",E23:E25)-1),0))
    

    【讨论】:

    • 这个解决方案只返回提取的数字,而不是它们的总和。但是感谢您的合作,请查看此答案:stackoverflow.com/a/65652384/13836545
    • @AliTabaraei。我认为您可能错误地实现了它,因为它可以完美地汇总所有返回的数字。无论哪种方式;你得到了答案,这很好。
    【解决方案3】:

    LEFT 从您的单元格中提取数字作为文本。要将其转换回数字,您可以使用 VALUE 函数。

    以你为例。以下公式适用于我:

    =SUMPRODUCT(IF(E23:E25="",0,VALUE(LEFT(E23:E25,1))))
    

    警告:这仅适用于单个数字,因为它需要单元格中的第一个字符。如果您需要为此公式考虑大于 10 的数字,您可以添加一些 if 语句来检查第一个字符后是否有空格。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    相关资源
    最近更新 更多