【问题标题】:How do I prevent Excel from automatically replicating formulas in tables?如何防止 Excel 自动复制表格中的公式?
【发布时间】:2016-11-19 20:42:38
【问题描述】:

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

我想关闭这个自动公式复制功能,或者想办法自定义顶行中的公式,这样它就不会计算标题值。

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

=SUM(B2+C1-D2)

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    您可以停止创建计算列。默认情况下,自动填充公式以在 Excel 表中创建计算列的选项处于启用状态。如果您不希望 Excel 在您在表格列中输入公式时创建计算列,您可以关闭填充公式的选项。如果您不想关闭该选项,但又不想在处理表时始终创建计算列,则可以停止自动创建计算列。

    打开或关闭计算列

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

    2) 点击校对

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

    4) 单击键入时自动套用格式标签

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

    停止自动创建计算列

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

    【讨论】:

    • 我找到了在表格中填充公式以创建计算列选项并取消选中它。但该表仍在新行中填写公式。知道为什么吗?
    【解决方案2】:

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

    【讨论】:

    • 做到了!侵入性最小的解决方案。谢谢。
    • 这似乎不再适用于 365。它只会撤消整个更改,包括您的一个单元格......
    • 这个答案听起来很疯狂,但它在 2020 年中期的 Excel 385 中有效。多么奇怪的怪癖。感谢您的提示。
    • 这对我有用。我得到了警告图标,但我可以忍受它:)
    • 在 2016 年工作,我不确定在按 ctrl+z 时使用脏话是否是强制性的 - 我没有尝试过。
    【解决方案3】:

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

    其次,如果您使用 SUM() 的真正功能,那么文本(即您的列标题)将被忽略,而不是引发错误。 +- 运算符不容忍文本,无论是否在表格中。您可以将公式重写为

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

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

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

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

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

    【讨论】:

    • 为什么是D2*-1 而不是-D2
    • 因为他想减去 D2 @chrisneilsen
    • -D2 不做同样的事情吗?
    • 但它又是一个- 运算符。我想展示如何使用 SUM() 的功能来忽略文本。引入运算符不会忽略文本@chrisneilsen
    • 做了一个快速测试,-D2D2*-1 都无法忽略文本。但=SUM(B2,C2)-SUM(D2) 在 D2 为文本时有效
    【解决方案4】:

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

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

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

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

    只能在 Excel 2013 中测试。

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-07-20
          • 2017-10-08
          • 1970-01-01
          • 1970-01-01
          • 2022-12-24
          • 2014-09-26
          相关资源
          最近更新 更多