【问题标题】:Consolidate Monthly Periods into Annual - SumIfs将每月期间合并为每年 - SumIfs
【发布时间】:2020-02-25 10:54:17
【问题描述】:

我有每月的按揭付款,包括付款、付款的利息部分和付款的本金部分。

Period Payment   Interest    Principal
1      $900      $660         $240
2      $900      $659         $241
...
360    $900      $1           $889

我想将付款的利息部分合并为 30 年。

Year                1     2     3     4     5     6     7
Interest Payment    $7900 $7500

如何使用SUMIFS 来计算第 1 年的前 12 笔付款、第 2 年的下 12 笔付款、第 3 年的下 12 笔付款?

我尝试做SUMIFS(Interest_col,Period_col,">0","<=year*12"),但最后一个比较似乎没有在 excel 中注册。不知道是不是因为注册为字符串?

【问题讨论】:

  • 我认为你想多了/把它复杂化了。您只需要将 sum 设置为 12,突出显示这 12 个,然后将它们复制到行尾。
  • @Mech 我编辑了问题以显示年表。我想将它们全部合并到一个单独的年度表中,而不仅仅是将值与每月计划分开 12 行。

标签: excel excel-formula


【解决方案1】:

确保数学在引号之外:

=SUMIFS(Interest_col,Period_col,">"&(year-1)*12,Period_col,"<="&year*12)

使用您的表,如下所示:

=SUMIFS($C:$C,$A:$A,">"&(G2-1)*12,$A:$A,"<="&G2*12)

【讨论】:

    【解决方案2】:

    把它放在你的第 1 年列下面,然后把它复制过来:

    =SUM(INDIRECT("C"&(12*H1-10)&":C"&(12*H1+1)))
    

    【讨论】:

    • 请注意,INDIRECT 是不稳定的 - 最好在此处使用 INDEX。
    • 以什么方式?我愿意接受更多信息。
    • 基本上类似于=SUM(INDEX(C:C,row,):INDEX(C:C,row,)),您可以使用年份和与已经提议的类似的数学来计算相应的行。
    【解决方案3】:

    我想知道这个公式是否对你有帮助。

    =SUM(OFFSET($B2,(COLUMN()-4)*12,0,12))
    

    B2 是 [interest 列] 中的第一个单元格

    Column() 返回公式所在单元格的列号。在我的示例中,这是 D 列(=第 4 列)和 4-4=0,并且 0*12=0,这意味着我们启动 B2 并对该列中的 12 个值求和,如“12”所示结束。

    如果将公式复制到 E 列,COLUMN()-4 等于 1 且 1*12=12,这意味着我们将从 B14 开始的 12 个值相加。当您将公式复制到右侧时,总和范围会以这种方式发生变化,步长为 12。

    如果上述公式指定的范围内没有其他 12 个值,则列表底部可能存在问题。除非您有总计然后将其包含在总和中,否则这应该不会产生影响。

    【讨论】:

    • OFFSET 是不稳定的 - 应该在这里避免。
    • “易失性”表示每次计算工作表时都会计算公式。如果有大量计算,这可能会影响工作表的响应速度 - 取决于计算机中处理器的速度。如果您有大量贷款,您将进行“非常大量”的计算。但是,如果您只想合并新数据库的数字,然后用值替换公式,您可能仍会使用 OFFSET 或 INDIRECT 函数。
    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    相关资源
    最近更新 更多