【问题标题】:How to autosum a full column in excel without circular reference?如何在没有循环引用的情况下自动汇总excel中的整列?
【发布时间】:2012-05-10 16:19:00
【问题描述】:

我想在红色圆圈单元格 (C19) 中有所有 C 列的总和。我尝试在公式 (=SUM(C1:C50)) 中使用 C1 到 C50。我使用 C1:C50 而不是 C1:C18,因为如果我在最终总和之前添加一些行,我希望这些行包含在最终总和中。

所以 2 个问题:

1) 如何在没有 C1(这是一个日期)和没有 C19 的情况下对所有 C 列求和(以不引起循环引用,因为那是应该只对先前值进行求和并显示的单元格?

2) 如果有一个公式,如果我添加更多行(假设我添加另一行并且最终总和更改为 C20),它会自动更新吗?那么 C19 也应该加到总和中。

PS:图片显示了 B 列的公式,因为我将在所有列中使用相同的公式,我只是询问了 C,因为我有一个工作总和。

【问题讨论】:

    标签: excel sum formula circular-reference


    【解决方案1】:

    我喜欢做以下事情:

    • 在我要跳过的行中的字段(即 A1)中,输入将该行唯一描述为标题/跳过行的文本(即“header-skip”)
    • 在没有循环引用的情况下,在我想要求和的列(即 B:B)中,输入“SUMIF”公式,使用标题文本作为要跳过的 IF 的一部分。 =SUMIF(A:A, "header-skip", B:B)

    例如

    [   ][      A      ][                 B                 ]
    [ 1 ][ header-skip ][ =SUMIF(A:A, "<>header-skip", B:B) ]
    [ 2 ][             ][                9.5                ]
    [ 3 ][             ][                7.5                ]
    [ 4 ][             ][               25.0                ]
    

    第 1 行的公式现在应该正确显示“42”,而没有任何循环引用。这比使用偏移量、索引和间接方法等更容易记住,而且放入工作表也更快。

    希望这对某人有所帮助!

    【讨论】:

      【解决方案2】:

      如果您使用=SUBTOTAL(9, range),则计算的总数不会用于后面的小计。换句话说,如果您在 C19(或 C 列中的其他单元格)中有小计,那么最后的小计(例如 C50)将忽略该范围内的小计(=SUBTOTAL(9,C2:C49))。这样,您就不必担心会从您希望求和的范围中忽略某些单元格引用。

      【讨论】:

      • Nice SUBTOTAL 在范围上比 SUMS 更直接。
      • 它不起作用,我试过 =SUBTOTAL(9,C2:C49) 并且它给了我同样的循环错误。我还必须使用 =SUBTOTAL(9;C2:C49),这是“,”和“;”困惑与我使用的是 excel 2003 有关吗?
      • 我的简单 Excel 不接受函数编号和范围之间的“,”。它要求“;”。怎么了?
      • ","/";"问题可能是由于您的区域设置。如果您将SUBTOTAL 公式放在C2:C49 中,那么是的,它将是循环的。如果您想总结C2:C49,那么您可以在C50 中添加SUBTOTAL。如果你想总结C2:C18,那么你可以把=SUBTOTAL(9; C2:C18) 放在C19 中。 SUBTOTALSUM 之间的主要区别在于 C19 中的 SUBTOTAL 不会被添加到 C50 中的 SUBTOTAL 中。有意义吗?
      • 是的,这是有道理的。但是如果我把它放在 C19 中,然后在它之前插入一行(所以它会变成 C20),小计会自动更新吗?它会总结之前的所有内容吗?
      【解决方案3】:

      1) 如何在没有 C1(日期)的情况下对所有 C 列求和 没有 C19 (不引起循环引用,因为那是 单元格中应该只对以前的值求和并显示?

      =SUM(C2:C18,C20:C50)
      

      2)如果有一个公式,如果我添加更多,它会自动更新吗 行(假设我添加了另一行并且最终总和更改为 C20)? 那么C19也应该加到总和中

      如果您要使用上述公式在第 2 行和第 18 行之间插入一行,Excel 会自动将其更改为 =SUM(C2:C19,C21:C51)

      【讨论】:

      • 谢谢。这样就解决了。但我不得不使用 =SUM(C2:C19;C21:C51) ;而不是,
      【解决方案4】:

      不知道您是否仍然感兴趣,但是: 有一种解决方法可以解决问题,但不会给你一个循环引用。

      这是我自己的电子表格中的一个示例:“=SUM(M1:OFFSET(M13,-1,0,1,1))"

      通常您会将一组数据与“=SUM(M1:M19)”相加。

      但是,如果您想这样做并且仍然能够添加行,则需要合并一个 OFFSET 公式。 OFFSET 定位您的参考单元格,然后向上或向下移动您告诉它的单元格数量。

      例如我的(上图)找到 M13 然后向上移动一个单元格(-1),结果是 1 个单元格高 1 个单元格宽(1,1)。

      【讨论】:

        猜你喜欢
        • 2022-12-05
        • 1970-01-01
        • 2017-10-25
        • 2023-03-21
        • 1970-01-01
        • 2015-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多