如何防止Excel自动复制表中的公式?

时间:2016-11-19 20:42:39

标签: excel excel-formula

我正在使用Excel 2016.我有一个带有标题的表格,当我插入公式时,Excel会自动将公式复制到列中的所有其他单元格。虽然这通常没问题,但它错误地计算表头。我以为我可以更改顶行以排除标题,但Excel会更新我不想要的列的其余部分。

我想要关掉这个自动公式复制功能,或者找出一种在顶行自定义公式的方法,这样就不会计算标题值。

以下是我使用的公式,除了添加“总计”之外,我没有对表格做任何特别的事情。行:

=SUM(B2+C1-D2)

6 个答案:

答案 0 :(得分:6)

您可以停止创建计算列。默认情况下,启用自动填充公式以在Excel表中创建计算列的选项。如果在表列中输入公式时不希望Excel创建计算列,则可以关闭该选项以填充公式。如果您不想关闭该选项,但并不总是希望在工作表中创建计算列,则可以停止自动创建计算列。

打开或关闭计算列

1)在文件标签上,点击选项

2)点击校对

3)在自动更正选项下,点击自动更正选项

4)点击键入时自动套用格式选项卡

5)在工作时自动下,选中或清除在表格中填写公式以创建计算列复选框以打开或关闭此选项。

停止自动创建计算列

在表格列中输入第一个公式后,点击显示的自动更正选项按钮,然后点击停止自动创建计算列

答案 1 :(得分:1)

首先,为什么要将简单的公式包装到SUM函数中?我总是想知道为什么人们在写=B2+C1-D2时更短的时候会这样做。

其次,如果使用SUM()的真实功能,则会忽略文本(即列标题)而不是抛出错误。 +-运营商不会容忍文本,无论是否在表格中。您可以将公式重写为

=Sum(B2,C1,D2*-1)

第三,请注意,当您将行插入现有表(现有行之间)时,像这样的单元格引用会表现不正常。对于插入行下方的任何内容,行引用将关闭,您需要再次手动复制公式以获得正确的结果。

为了获得不需要调整的公式,您可能希望使用结构化引用,其中每行具有完全相同的公式,而不是单元格引用,其中每行调整行引用。一个可能的公式是(如果您的列标记为data1,data2和data3用于列B,C和D):

=SUM([@data1],OFFSET([@data2],-1,0),[@data3]*-1)

要从上面的行获取数据,Offset()用于当前行的单元格(使用@符号),负行偏移。请记住,Offset是易变的,这可能会减慢非常大的数据集。

答案 2 :(得分:1)

调整自动更正选项不是最佳选择。您可以通过以下方式逐个逐个进行此操作:

  1. 让该列自动填充您的公式

  2. 在自动计算的列中删除任意数量的值(只需一个即可完成操作)。

  3. 根据需要调整列中的公式

仅能在Excel 2013中进行测试。

答案 3 :(得分:1)

在2016/365中,您还可以更改所需的单元格,让其自动填充列的其余部分,然后按ctrl + z,这将撤消自动填充,但将您刚刚更改的新公式/文本保留在该单元格中。 / p>

答案 4 :(得分:0)

打开此查询可能有点晚 - 但有几点:

  • 如果列中已有不同的公式,则公式复制不起作用 - 可能需要3个不同的公式才能说Excel无法猜出要复制的公式
  • 解决方案可能是在顶部添加2个虚拟行,这将阻止复制 - 这样做的好处是您不会禁用工作簿中可能存在的任何其他表的复制;并且我不确定在您打开第一个工作簿时是否也会无意中将该设置复制到您创建的其他新工作簿
  • 最后,如果A1或B2不是数字,=A1+B2等的旧栗子会产生错误;而=sum(A1,B2)的工作方式不同,因为该文本将被忽略并有效地视为零

答案 5 :(得分:0)

如果您的参考文献中间没有字母,则这些技术将无效。在这种情况下,要在参考文献之前添加零,请在其旁边创建一个新列,并在所有列中添加“ 0”引用旁边的单元格,添加另一列,并使用函数“ concontenate”或“ 0”单元格与引用单元格之间的任何内容。 不仅如此,= len函数会正确告诉您中间带有字母的引用的位数(因为excel本身并不将其视为数字,而是文本/通用格式),而在其他引用之前添加了0他们与格式化不会发生。 例如:012345 = len给出5位数字/ 01A345 = len给出6位数字