你要添加的 “数字 "是Texts,而不是数字。
当你从CSV或其他非Excel数据源加载数据时,或单元格的格式设置不正确时,就会出现这种情况。有几种方法可以解决这个问题:
1.如果你从CSV或其他非Excel数据源中加载了数据,最简单的方法就是重复操作,将列标记为 "Number "而不是 "Text"。要做到这一点,打开一个空白的Excel工作表,进入数据/从文本,并按照向导进行操作。在步骤3/3中,确保点击该列并选择 "常规",而不是 "文本”
2.如果没有这个选项,可以使用辅助列(如值旁边),并在F1中输入=VALUE(E1)
,然后复制下来。这时,这个列就可以进行求和了。然后你也可以将F列和 “Paste/Values only "的内容复制到E列,然后删除辅助列。
我也是用的是法式的Excel,在CSV文件中经常遇到这个问题。正如其他人所解释的那样,法语数字使用逗号作为小数分隔符,像123.45
这样的数字会被Excel解释为文本。
最快的方法就是用.
替换掉,
。你可以按照David的建议,用Find/Replace快速完成。
对于经常遇到这个问题的人来说,你可以使用这个代码从这个答案改编),把它保存在你的个人工作簿中,然后在ribbon中指定一个按钮:
Sub Comas2Dots()
Application.ScreenUpdating = False
If (MsgBox("Do you want to replace comas by dots?", vbOKCancel) = vbOK) Then
Const sTEMPCOMMA = "|comma|"
Const sTEMPDOT = "|dot|"
Const sCOMMA = ","
Const sDOT = "."
If TypeName(Selection) = "Range" Then
With Selection
.Replace sCOMMA, sTEMPCOMMA, xlPart
.Replace sDOT, sTEMPDOT, xlPart
.Replace sTEMPCOMMA, sDOT, xlPart
.Replace sTEMPDOT, sCOMMA, xlPart
End With
End If
End If
Application.ScreenUpdating = True
End Sub
希望能帮助遇到这个不必要的问题的人!
****附加文档*
1.突出显示你要求和的列,右键单击右键,选择 “单元格格式化"。2. 选择 "数字",但如果不适用于该值,记得要把小数位设为0。现在,虽然你改变了列的格式,但并不意味着该列已经正式将所有的值都转换为数字,所以要解决这个问题
再次高亮显示整个列,然后点击数据选项卡,然后 "文本到列”
选择Delimited,点击Next
取消勾选标签,然后点击下一步
点击完成
总和现在应该反映出一个数字!