Excel 里写:
=SUM(VALUE(E5:E8))
老版本直接 #VALUE!。原因是 VALUE 老版本只能吃单个单元格,不能吃区域——只有 Microsoft 365 / Excel 2021+ 的动态数组特性才让它自动对区域生效。
单元格已经是数字:直接 SUM
=SUM(E5:E8)
先分辨到底是数字还是文本:
- 左对齐通常是文本,右对齐是数字
- 或者选中一个单元格看编辑栏——文本会显示
'123
单元格是文本型数字:“--” 双负号
-- 会把文本转成数字,兼容所有 Excel 版本:
=SUMPRODUCT(--E5:E8)
SUMPRODUCT 天生支持数组运算,比 SUM 更宽容。
Microsoft 365 也能用:
=SUM(--E5:E8)
=SUM(VALUE(E5:E8))
老版本上面这两个会挂,用 SUMPRODUCT 版本最稳。
带货币符号 / 千分位逗号
单元格长这样:
$1,234.56
$789.00
要先剥掉 $ 和 ,:
=SUMPRODUCT(VALUE(SUBSTITUTE(SUBSTITUTE(E5:E8,"$",""),",","")))
嵌套 SUBSTITUTE 依次替换,最外层 VALUE 转数字,SUMPRODUCT 一次性求和。
混合了数字和文本的列
只想对文本型数字求和,跳过其它文本:
=SUMPRODUCT(IFERROR(VALUE(E5:E8), 0))
IFERROR 把无法转换的当 0,避免整个公式失败。
一劳永逸:转成真数字
如果整列都是文本数字,可以一次性转过来:
- 选中一个空单元格,输入
1,复制 - 选中要转的整列
- 右键 → 选择性粘贴 → 乘(Multiply)
之后就是真数字,SUM 直接用。
一句话总结
老 Excel:SUMPRODUCT(--range)。新 Excel:SUM 直接吃。带货币符号:套两层 SUBSTITUTE 剥掉符号再求和。
