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

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

我想closures此自动公式复制function或找出一种方法来自定义顶部的公式,所以它不计算标题值。

下面是我使用的公式,除了添加“总计”行之外,我没有对表格做任何特殊处理:

=SUM(B2+C1-D2) 

您可以停止创build计算列。 自动填充公式以在Excel表中创build计算列的选项默认处于打开状态。 如果您不希望Excel在表列中input公式时创build计算列,则可以将该选项设置为closures公式。 如果您不想closures该选项,但并不总是希望在工作表中创build计算列,则可以停止自动创build计算列。

打开或closures计算列

1)在文件选项卡上,单击选项

2)点击校对

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

4)单击自动套用格式选项卡

5)在工作时自动下,select或清除表格中填充公式以创build计算列checkbox打开或closures此选项。

自动停止创build计算列

在表列中input第一个公式后,单击显示的“ 自动更正选项”button,然后单击“ 停止自动创build计算列”

首先,为什么你将一个简单的公式包装到SUM函数中? 我总是想知道为什么人们这么做的时候,写的时间比=B2+C1-D2短得多。

其次,如果你使用了SUM()的真实能力,那么文本,即你的列标题,将被忽略,而不是抛出一个错误。 +-运算符不能容忍文本,无论是否在表中。 你可以重写你的公式

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

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

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

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

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

可能有点晚,打开这个查询 – 但几点:

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