如何防止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)
工作方式不同,因为文本将被忽略并被有效地视为零