1. 首页
  2. > 海外公司注册 >

如何先进先出法账龄分析(先进先出法分析应收账款账龄)

对于应收账款,作为财务的你是否在关心:谁欠钱?谁欠的多?谁欠的久?


当应收账款未能按时收回时,就会降低企业资金的使用效率,使企业效益下降。


在赊销业务中,企业发出商品并开票确认收入后,货款却不能同步到账,这种没有货款回笼的销售收入,势必会形成没有现金流入的会计利润,企业还需垫支由此产生的相关税款。


对于应收账款的管理成本、清欠过程中的中介费用等都会增加企业的现金流出,这不仅占用了大量的流动资金,还将影响企业现金流的正常运转。


在案例中,我们将运用先进先出的原则:


  • 如果应收账款借方发生额已经实现回款,那么,这部分交易不影响我们对应收账龄的统计;
  • 倒序统计应收账款余额分布在哪几笔借方发生里(定义为“实际应收”),即可按实际应收借方发生的日期统计应收账款账龄。

(在本次案例中,我们暂不考虑应收账款借方红字的情况)


一般来说,应收账款清账操作需要在核算系统中找到对应的应收账款借方凭证,然后对该笔凭证进行冲销。在这种情况下,统计应收账款账龄只需要找到未冲销的应收账款,计算凭证日期/交易日期至统计日期的间隔时长就可以了。


我们使用先进先出的方法统计截止2020/9/30的应收账龄,账龄分段格式如下:



1


数据准备


引入应收账款凭证数据:


import pandas as pd from datetime import datetime, date import warnings warnings.filterwarnings("ignore") pd.options.display.float_format = {:,.2f}.format file = 财会实验数据.xlsx df = pd.read_excel(file, sheet_name=客户往来账) df.fillna(0,inplace=True) df


2


数据处理


根据实验要求,按每个客户先进先出的原则统计账龄。因此先对应收账款数据按客groupby,再在每个group中进行账龄计算,group内的账龄计算逻辑我们命名为AR函数。


def AR(x): # 计算客户应收款余额 total = x[本币金额].sum() # 统计应收账款借方 df_dr = x[x[本币金额]>0] # 按过账日期降序 df_dr = df_dr.sort_values(by=[过帐日期],ascending=False).reset_index(drop=True) # 应收账款先进先出,因此将余额分摊在最后几笔借方交易,一旦分摊完则停止 for index, row in df_dr.iterrows(): if total-row[本币金额]>0: df_dr.loc[index,实际应收] = row[本币金额] else: df_dr.loc[index,实际应收] = total break total = total-row[本币金额] return df_dr df2 = df.groupby(客户编号,as_index=False).apply(AR) # 找一个客户验证计算结果 df2.loc[df2[客户编号]==23500000]


过滤实际应收为空或者为0的数据(代表已清账)


df3=df2[(pd.isna(df2[实际应收]) ==False)&(df2[实际应收]!=0) df3.loc[df3[客户编号]==23500000]


3


数据计算


计算每笔实际应收账款截止2020/9/30的账龄,账龄以月份数据表示,不足一月的按照天数/30计算小数。


enddate = date(2020, 9, 30) def totalmonth(startdate): return round((enddate.year-startdate.year)*12 (enddate.month-startdate.month) (enddate.day-startdate.day)/30,2) df3[账龄]=df3[过帐日期].map(totalmonth) df3.loc[df3[客户编号]==23500000]


计算账龄区间:使用条件判断


▪ 当账龄小于等于3个月时,落入账龄区间 1-3月;
▪ 当账龄大于3个月小于等于12个月时,落入账龄区间 3月-1年;
▪ 当账龄大于12个月小于等于24个月时,落入账龄区间 1-2年;
▪ 当账龄大于36个月时,落入账龄区间 3年以上。


def age(totalmonth): if totalmonth<=3: age=1-3月 elif totalmonth<=12: age=3月-1年 elif totalmonth<=24: age=1-2年 else: age=3年以上 return age df3[账龄区间]=df3[账龄].map(age) df3.loc[df3[客户编号]==23500000]


账龄统计:


pd.pivot_table(df3,index[客户编号], columns=[账龄区间], values=[实际应收],aggfunc= sum,fill_value=0)


以上就是用Python自动计算应收账款账龄的操作步骤了。公司的应收账款在流动资产中具有举足轻重的地位,如果公司的应收账款能及时收回,那么公司的资金使用效率将能大幅提高!


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至123456@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息