在Excel中总和返回0


12

我正在处理Excel电子表格,当我在单元格中使用SUM公式然后选择列时,它将返回0。我认为这是由于单元格中的双引号引起的。我试图格式化单元格,但它仍然返回0

我正在使用Microsoft Office 2010

结果的屏幕截图

Answers:


5

要删除双引号,请选择要转换的单元格,然后使用Find->Replace将引号(")更改为空。

如果单元格保留为文本,这是一种使用Paste Special命令将文本转换为数字的方法。

  1. 在任何空白单元格中,输入值1
  2. 确保您键入1的单元格的格式为数字
  3. 选择具有1和的单元格 Copy
  4. 选择具有要转换为数字的值的单元格
  5. 选择 Paste Special
  6. 在下Operation,单击Multiply,然后单击OK

问题不在于引号。屏幕快照中显示的引号在此处,因为这些值是文本,而不是数字,并且该值不包含任何引号。原因是在法国语言环境中,,是小数点分隔符,而不是.。因此,像123.45文本这样的值不能被汇总。像您建议的那样乘以1在这种情况下都不起作用,因为这不是“数字存储为文本”的情况,而是“文本存储为文本”的情况。如果将点替换为逗号,则Excel会将文本转换为实数(这仅适用于法语语言环境)。
piko

7

您尝试添加的“数字”是文本,而不是数字。

当它们从标记了它们的源中加载时,或者在单元格的格式设置不正确时,就会发生这种情况。

不幸的是,没有简单的两下方法可以解决它-更改单元格的格式不会相应地更改内容,您需要重新输入每个值。但是,有几种解决方法:

  1. 如果您是从CSV或其他非Excel来源加载数据,最简单的方法是重复该操作,并将该列标记为“数字”而不是“文本”。为此,请打开空白的Excel工作表,转到“数据/来自文本”,然后按照向导进行操作。在第3/3步中,确保单击该列并选择“常规”,而不是“文本”

  2. 如果这不是一种选择,则可以使用一个帮助器列(如值旁边的右侧),并输入=VALUE(E1)F1,然后将其复制下来。该列现在将可汇总。然后,您还可以将F列的内容和“仅粘贴/值”复制到E列,然后删除帮助程序列。

  3. 第三种选择是将其组合为Array-formula:而不是=SUM(E10:E13)使用=SUM(VALUE(E10:E13))并按CTRLSHIFTENTER(而不是only ENTER)。


我尝试使用2和3解决方案,但=SUM(VALUE(E10:E13))返回错误,所以没有解决方案。但是准确的是,该文件的格式为csv,可以将其转换为.xlsx并将该列标记为Number。再次
致谢

@ fixer1234在我看来,答案中建议了它。
techraf

@techraf,是的。我试图解决OP的评论,但我的评论增加了混乱。
fixer1234 '16

@techraf和@Aganju我甚至在每个单元格上都应用了VALUE函数,但它仍然返回错误=SUM(VALUE(E10):VALUE(E13))
Haithem Rihane

@HaithemRihane,那行不通,不是那样的数组公式。您是否按照CTRL + SHIFT + RET的说明进行操作?即使您从未输入过,结果也将显示为。我还添加了详细说明,对1={SUM(VALUE(E10:E13))}{}
Aganju

3

我还使用带有法语语言环境的Excel,并且经常在CSV文件中遇到此问题。正如其他人所解释的那样,法语数字使用123.45逗号作为小数点分隔符,而Excel 这样的数字将其解释为文本。

绕过这个最快的方法,就是更换.,。根据David的建议,您可以使用“查找/替换”快速完成此操作。

对于那些经常遇到此问题的人,您可以使用这段代码(根据此答案改编而成),将其保存在您的PERSONAL工作簿中,并将其分配给功能区中的一个按钮:

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. 将您的宏复制到个人宏工作簿

2

您尝试添加的单元格不会被视为数字。这是因为有句号“。” 而不是逗号“,”代表数字的小数部分。

解决此问题的一种更快的方法是使用查找功能(ctrl F),查找所有“”。并替换为“,”。


@ fixer1234实际上,David是对的。在我也有的法语语言环境中,逗号是小数点分隔符。数字完全不使用句号。OP的问题很简单,因为数字实际上是文本,要修复它,您需要替换.,。当然,它仅适用于法语(及类似地区)语言环境。
皮科

1
  1. 突出显示您要求和的列,右键单击并设置单元格格式。

  2. 选择数字,但请记住将小数位设置为0(如果不适用于该值)。现在,尽管您已更改了列的格式,但这并不意味着该列已将所有值正式转换为数字,因此请执行以下操作来解决此问题

  3. 再次突出显示整个列,然后单击“数据”选项卡,然后单击“文本到列”

在此处输入图片说明

  1. 选择定界,单击下一步

  2. 取消选中选项卡,然后单击下一步 在此处输入图片说明

  3. 点击完成

现在总和应该反映一个数字!


-1

打开一个新的Excell工作表。将表格格式化为数字,如果不需要,请删除小数。然后复制原始工作表并将其作为值仅粘贴到仅格式化为数字的工作表中。应该解决您的问题,如果您将日期分开,则可能需要格式化一些工作表以进行约会或其他所需的操作;如果您将它们分开,则可能要在整个包装盒中进行处理,但是您的公式应该很愚蠢,这使我浪费了半天的时间来解决问题


-1

确保您没有任何隐藏的行。我有两行被隐藏,当我意识到这一点并删除了这些行之后,我的计算终于成功了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.