往来账龄怎么算?用Excel公式+先进先出法,一次性算清所有客户(附完整案例)

15.会计文章

一、如何计算账龄、库龄

如何计算账龄、库龄?这是会计、审计行业的一个经典难题,如果公司/客户的财务系统中有一份《账龄分析表》那当然是最好了,但事实往往是:

  • 没有账龄表
  • 时间跨度很长,中间涉及财务系统的更换,然而账龄没有被切换过去,导致新系统即使有账龄,也不准
  • 财务系统更换时,新老系统的往来单位不一致(惊讶吗?事实如此)
  • 添加往来客商辅助核算时不谨慎,导致一个往来单位在系统里是多个
  • 同一个往来单位,没有及时核销,导致既有预付又有应付、既有预收又有应收

如果简单划分一下,大概可以有三个级别:

1.只有往来科目,没有客商辅助核算(真的有这样的);或者有客商辅助核算,但是数据质量很差

2.有客商辅助核算,大部分公司都是这个级别

3.有客商辅助核算和合同辅助核算,少数信息系统建设非常好,内控也非常好的公司会达到这一级别

对于我们来说,第一种,赶快跑就对了,第三种,不会在账龄上出问题,所以,我们主要面对的是第二种,有客商辅助核算,但是没有合同辅助核算,我们需要进行重分类之后,再根据先进先出来确定余额的账龄。


二、、需要做到什么程度

首先,账龄和库龄实际是同一种算法,之后全部以“账龄”代指。

账龄做到什么程度,需要看具体的场景:

1.财务报告披露,根据《企业会计准则第30号——财务报表列报》应用指南,将应收账款的账龄划分为1年以内、1年至2年、2年至3年、3年以上,应收票据、预付账款、长期应收款、其他应收款的,比照应收账款进行披露。

这个场景最为简单,我们只需要有前年,去年,今年三年的账就行,前年的期初不管实际多少年,都放到3年以上,前年的算2-3年,去年的算1-2年,今年的算1年以内,用先进先出计算一下就可以了。

2.往来清理,根据《民法典》第188条:

向人民法院请求保护民事权利的诉讼时效期间为三年。法律另有规定的,依照其规定。

诉讼时效期间自权利人知道或者应当知道权利受到损害以及义务人之日起计算。法律另有规定的,依照其规定。但是,自权利受到损害之日起超过二十年的,人民法院不予保护,有特殊情况的,人民法院可以根据权利人的申请决定延长。

账龄超过三年,且中间没有对账、催款、发函行为的,债务人取得时效抗辩权,可以拒绝履行,逾期超二十年的,人民法院不予保护。这种的需要先确定一个“XX年之前的直接核销”的时间点,后续操作同场景1 。

3.动真格的,真的想把每一个客商的账龄都算清楚,那就来吧,往下看。


三、使用Excel,按先进先出计算

假设

开始计算,要有两个前提假设:

1.在实际业务中,同一客商当然会涉及多个事项,按理说它们之间是独立的,不应该互相核销,但是由于没有合同辅助核算,为了便于计算,我们默认可以相互核销。

2.默认先进先出,如应收账款,借方是确认的应收账款,贷方是收款,默认每一笔收款核销最早确认的应收账款。

开始计算

示例中,账龄计算日期为2025年12月31日。

首先,让AI生成一套虚拟数据

图片

点击图片可查看完整电子表格

图片

点击图片可查看完整电子表格

图片

点击图片可查看完整电子表格

以客户“华联科技有限公司”为例,原理其实很简单,最终的余额是285,000.00元,从最后一笔入库往前推,凑够这些金额,那就是这几笔入库组成了最终的余额,用这几笔入库的时间分别计算账龄就可以。

图片

转化为账龄表的话,大概长这样:

图片

但是,如果我们有一万家客户怎么办?肯定不能这样一个个算,还是得用公式!


四、公式解法

注意,数据是从建账开始的所有数据! 如果确实提供不了这么多,那就把期初余额作为第一笔借方发生额,但是这样计算结果有可能不准。

第一步,求累计贷方金额,每个客户的金额应该是一个数

=SUMIFS(E:E,G:G,G2)

图片

第二步,求本行之前的累计借方金额,注意!不包括本行,一定是小于号

=SUMIFS(D:D,G:G,G2,B:B,"<"&B2)

图片

第三步,求累计贷方被累计借方冲减后的金额(可以这么理解,因为是先进先出,所以贷方合计金额要从最早的一笔借方金额开始冲减,轮到本行的,一定是被之前的借方金额冲减完之后的)

= IF(D2="","",MAX(0, H2 - I2))

图片

第四步,计算库龄金额,用本行的借方金额减去剩余的贷方金额,要么是零,要么冲减一部分,要么贷方余额没有了,全部要计入期末余额

= IF(D2="","",MAX(0, D2 - J2))

图片

图片

图片

现在三家的账龄金额全部计算出来了,接下来是做账龄分组,这回我们分的细一点儿,按3个月以内,3-6个月,6个月-1年,1年以上来划分

先计算出每个日期和2025年12月31日的月份差

=DATEDIF(B2,“2025-12-31”,“m”)

图片

再使用IF函数,做账龄分组

=IF(L2<=3,“3个月以内”,IF(L2<=6,“3-6个月”,IF(L2<=12,“6个月-1年”,“1年以上”)))

图片

最后去账龄分析表,以账龄分组为条件,对账龄金额列汇总求和

这里使用了数组,一次性全做完(只在C2输入公式即可)

=SUMIFS(Sheet1!K:K,Sheet1!G:G,Sheet2!A2:A4,Sheet1!M:M,Sheet2!C1:F1)

图片


五、手工标签法

假如上一种方法满足不了需求,就是想精确到合同,怎么办?

没什么好办法,有合同辅助核算的时候,相当于是把这项工作平摊到了每次做凭证的时候,现在既然想达到这个效果,那少走的路就得一点不差的补回来,由于翻旧账的难度远大于正常做账,甚至还得多花费成倍的时间!

而且,别妄想能用AI实现,那需要很严苛的条件(摘要信息充足,或者有电子档案),满足这些条件的企业绝对不会在账龄上出问题。

具体实现方法:

1.在表中新加一列“合同”字段,逐行查账,逐个填写合同号

2.用客商名称+合同号组合出一个新的字段,用这个字段代替第一种方法的客户名称段,使用第一种方法的公式,分合同计算账龄。