应收账款管理是财务管理的一项重要内容,为了随时了解客户的欠款情况,对应收账款进行账龄分析表是一种基本分析方法,这篇文章就先介绍一下如何利用PowerBI,自动生成应收账款账龄表。

假设有一张常见的应收账款明细表,记录了每个客户的每月应收发生额和回款金额等数据,如下图:

财务报表应收账款账龄分析(PowerBI财务应用案例应收账款账龄分析)(1)

根据这个明细表,如何计算出每个客户的账龄分布情况,比如30天内的应收账款有多少、半年以上的账款有多少、一年以上的应收账款有多少……?

下面就来看看PowerBI如何实现这种分析。

1、建立数据模型

虽然数据表只有一个表,但是为了分析的需要,我们应建立对应的维度表,在这个例子中,因为需要按客户和时间分析,所以至少应该建立客户表和日期表。

并且为了能够把应收余额分解到不同的账龄中,还必选建立一张账龄分组的辅助表,这里假定按这6种账龄类型,制作账龄表如下:

财务报表应收账款账龄分析(PowerBI财务应用案例应收账款账龄分析)(2)

然后将客户表、日期表与应收明细表建立关系,账龄分组表无需与应收明细表建立关系,模型图如下:

财务报表应收账款账龄分析(PowerBI财务应用案例应收账款账龄分析)(3)

关于日期表和辅助表的制作请参考:

Power BI 日期表制作方式汇总

Power BI 辅助表制作方式汇总

2、利用DAX生成账龄分布表

基本思路是,先将每个客户的应收余额,分配到实际发生的期间,然后根据发生期间来放置到对应的账龄中。

首先建立两个基础度量值,来计算客户的应收发生额和应收余额:

应收 本期发生额 = SUM('应收明细表'[本期发生额])

应收 本期余额 = SUM('应收明细表'[期末余额])

截至到现在的应收余额就是最后一个记账日期对应的余额,但每个客户的最后记账日期并不一致,所以需要先计算出最后的记账日期:

最后记账日期 =

CALCULATE(

MAX('应收明细表'[记账日期]),

ALLEXCEPT('应收明细表','客户表'[客户名称])

)

财务报表应收账款账龄分析(PowerBI财务应用案例应收账款账龄分析)(4)

根据最后记账日期,就可以计算出应收余额:

应收 期末余额 =

CALCULATE(

[应收 本期余额],

FILTER(

ALL('日期表'),

'日期表'[日期]=[最后记账日期])

)

财务报表应收账款账龄分析(PowerBI财务应用案例应收账款账龄分析)(5)

然后根据应收余额和应收发生额,来计算每期应收未收的金额是多少,度量值如下:

财务报表应收账款账龄分析(PowerBI财务应用案例应收账款账龄分析)(6)

其中的计算逻辑,已用注释说明,熟悉应收的同学应该很容易理解,如果是按月查看客户的应收未收金额,就可以将年度月份放进来:

财务报表应收账款账龄分析(PowerBI财务应用案例应收账款账龄分析)(7)

有了每期的未收金额,就可能很轻松计算出账龄分布情况了,其实就是分组分析(可参考:Power BI 数据分析应用:客户购买频次分布):

财务报表应收账款账龄分析(PowerBI财务应用案例应收账款账龄分析)(8)

做个矩阵,将客户放到【行】,账龄放到【列】,上面的度量值作为【值】,就能自动计算出每个客户的应收账龄分布情况了:

财务报表应收账款账龄分析(PowerBI财务应用案例应收账款账龄分析)(9)

这里有问题是,总计金额不正确,可以单独修正一下,

财务报表应收账款账龄分析(PowerBI财务应用案例应收账款账龄分析)(10)

参考:Power BI 总计错误的终极解决方案(二)

把这个修正后的度量值放到矩阵中,就是正确的结果了:

财务报表应收账款账龄分析(PowerBI财务应用案例应收账款账龄分析)(11)

这样就自动生成账龄分布情况,如果应收明细表数据有更新,只需要点击刷新,即可自动完成每个客户的应收账龄分布,一目了然的掌握每个客户的欠款情况,关于账龄分组,可以根据实际需要来调整。

其实账龄分析也是一种分组分析,掌握了分组的逻辑,实现起来并不难,上面的这些度量值的逻辑需要你仔细理解,首先应该先想清楚业务的计算逻辑,然后学会用DAX来表达。

很多人不会用PowerBI做复杂点的数据分析,其实多数情况下并不是PowerBI或者DAX太难,恰恰是因为没有真正想清楚业务的计算逻辑。能不能先分解问题,并用语言描述出来计算逻辑非常关键。

更多精彩:

Power BI功能详解:同步切片器

自定义区域可视化,你可以用Power BI的形状地图

如何利用Power BI,进行回头客户分析?

采悟,微软MVP,「PowerBI星球」创始人,《Power BI商业数据分析》作者。

,