Excel公式修改:同客户后续付款优先抵消往期欠款的实现方法
滚动抵扣欠款的Excel差额公式实现方案
前置假设
你的数据按时间顺序从上到下排列,表头在第1行,数据从第2行开始:
- C列:客户姓名
- I列:当月应付金额(固定为425.65)
- K列:当月实付金额
- L列:需要计算的累计差额列
公式方案
方案1:Excel 365/2021 版本(支持动态数组)
在L2单元格输入以下公式,直接下拉填充所有行即可:
=LET( same_client,$C$2:C2=C2, total_due,SUM(FILTER($I$2:I2,same_client)), total_paid,SUM(FILTER($K$2:K2,same_client)), total_paid - total_due )
方案2:旧版Excel(无动态数组支持)
在L2单元格输入以下公式,按下Ctrl+Shift+Enter激活数组运算后,下拉填充所有行:
=SUMIF($C$2:C2,C2,$K$2:K2) - SUMIF($C$2:C2,C2,$I$2:I2)
逻辑说明
两个公式的核心逻辑一致:
- 只统计当前行及以上的相同客户数据,避免不同客户的金额混算
- 分别累加同客户到当前行为止的总应付、总实付
- 总实付减总应付的差值就是当前累计差额:负数为总欠款,正数为多付的预存金额,自动实现后续实付优先抵扣往期欠款的规则
示例验证
你提到的测试场景计算结果完全符合需求:
- 第1个月:应付425.65,实付0 → 差额为
-425.65(欠款425.65) - 第2个月:应付425.65,实付400 → 累计应付851.3,累计实付400 → 差额为
-451.3,等价于400先冲抵第一个月的425.65,仍欠25.65,叠加第二个月应付后总欠款451.3
内容的提问来源于stack exchange,提问作者Fiery
相关产品推荐
相关产品推荐

