我需要类似于递归函数的东西来动态更新Google表格中债务支付计划的“应付金额”字段

问题描述 投票:0回答:1

编辑1:请注意,“付款已收到”复选框无关紧要。它们仅供会计师在确认收到付款后检查。这就是为什么我没有提到那个专栏。

如果这像泥一样清晰,我很抱歉。我无法理解如何清楚地解释我的问题,这也是我无法弄清楚的部分原因。如果我使用 JavaScript,我只会使用递归函数来完成此操作。但我认为 Google Sheets 没有这个功能。

这是电子表格示例的链接 债务偿还计划

我正在为我的教会团体制定债务偿还计划。我有“到期日期”(A2:A13)、“到期金额”(B2:B13) 和“已付金额”(C2:C13) 列。

我还有“债务总额”(G1)、“偿还债务的月份”(G2)、“首次到期日”(G3)、“已付总金额”(G5) 和“剩余余额”(G6)。

目标是每月到期金额等于债务总额除以偿还债务的月份。那部分很容易。我无法弄清楚的是如何确保最终应付金额考虑到了超额付款。

例如。假设我欠 600 美元并希望在 12 个月内还清。我将有 12 行,每个截止日期 1 行。每月付款为 50 美元。现在,假设我每月可以支付 60 美元。我不希望每个月的付款因此而减少,但我需要某种函数或计算来确保第 12 行反映差异。由于我多付了 10 美元,最后一次付款应该少 10 美元。

如果我只需要最后一个“应付金额”以这种方式工作,我可能可以弄清楚这一点,但我需要它们全部以这种方式工作。假设我一个月可以额外支付 125 美元。第 11 行和第 12 行需要显示 $0,但第 10 行需要显示 $25。

最后,我不希望“应付金额”显示负数。因此,如果每月付款已支付,无论是 50 美元还是更多,我希望该行的“应付金额”显示 0 美元。如果支付的金额少于 50 美元,我希望它显示“应付金额”减去“已支付金额”的差额。

我尝试将其放在第 12 行(=IF($G$1-$G$5>=($G$1/$G$2), $G$1/$G$2, $G$1-$G$5))。如果(“债务总额”-“支付总额”)>= 标准每月还款额,则显示标准每月还款额,否则显示“剩余余额”。如果超额付款超过标准每月付款,则不会显示 $0。

我的第一行似乎按照我想要的方式运行。它显示标准每月付款,直到在“已付款金额”中输入数字,然后它才会反映低至 0 美元的差额。

function google-sheets calculation
1个回答
0
投票

这是一种方法;使用不同的场景进行测试,以确保其给出预期的输出...

=choosecols(ifna(hstack(let(Ξ,round(G1/G2,2), Δ,tocol(,1), Λ,iferror(chooserows(C2:C,sequence(index(match(,0/(C2:C<>0)))))),if(sum(Λ)>G1,Δ,reduce(Δ,,lambda(a,c,vstack(a,
  if(Λ="",Δ,map(Λ,lambda(Σ,max(0,Ξ-Σ)))),iferror(sequence(quotient(G1-max(sum(Λ),rows(Λ)*Ξ),Ξ),1,Ξ,0),Δ),let(x,mod(G1-max(sum(Λ),rows(Λ)*Ξ),Ξ),if(x<0.1,Δ,x))))))),wrapcols(,G2,)),0),1)

© www.soinside.com 2019 - 2024. All rights reserved.