Excel 求和求出 #VALUE!?先看单元格是不是文本

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. 选中一个空单元格,输入 1,复制
  2. 选中要转的整列
  3. 右键 → 选择性粘贴 → 乘(Multiply)

之后就是真数字,SUM 直接用。

一句话总结

老 ExcelSUMPRODUCT(--range)新 ExcelSUM 直接吃。带货币符号:套两层 SUBSTITUTE 剥掉符号再求和。