使用LEFT函数求和时忽略空白单元格的解决方案
解决方案
以下几种方法都能兼容包含空白单元格的区域,实现提取每个单元格前3位数字并求和的需求:
方法1:SUMPRODUCT + IFERROR(兼容所有Excel版本)
用IFERROR捕获空白单元格或无效文本转换时的错误,将错误值转为0后再求和:
=SUMPRODUCT(--IFERROR(LEFT(C12:C22,3),0))
- 逻辑:
LEFT(C12:C22,3)对空白单元格返回空文本,IFERROR把这类情况转为0,--将有效文本转成数字,最后通过SUMPRODUCT完成求和。
方法2:SUM + IFERROR(数组公式,旧版需按Ctrl+Shift+Enter)
若习惯用SUM,可使用该数组公式(Excel 365/2021版本无需按组合键,直接回车即可):
=SUM(IFERROR(--LEFT(C12:C22,3),0))
方法3:TEXTBEFORE(仅Excel 365/2021及以后版本)
借助TEXTBEFORE提取前3个字符,结合SUM自动忽略空白值的特性:
=SUM(--TEXTBEFORE(C12:C22&"xxx",,3))
- 逻辑:
C12:C22&"xxx"确保空白单元格也能提取到3个字符(实际为三个x,转数字时会自动变为0),TEXTBEFORE提取前3位后转数字求和。
方法4:SUMPRODUCT + 非空判断
先筛选非空单元格再处理,避免对空白单元格执行LEFT操作:
=SUMPRODUCT(--IF(C12:C22<>"",LEFT(C12:C22,3),0))
内容的提问来源于stack exchange,提问作者Kerim Zorluk
相关产品推荐
相关产品推荐

