Power BI财务报表分析:数据建模篇
PowerBI财务报表分析系列之:
数据建模篇
我们面对的源数据,往往并不是只有一张表,而这些不同的表,需要协同配合才能更有效的使用,多表的协同配合依靠表与表之间的逻辑关系。
根据分析的需求,在多个表之间建立合适的关系,使之可以像一个表一样灵活使用,这个过程称为数据建模。
一个良好的数据模型是数据分析的基础,也是一个良好的可视化报告的基础,可以帮我们更简单的实现分析目的。
数据建模表面来看,就是在不同的表之间建立一定的关系,但这些关系不是随便建立的,而是要根据分析的需要。
同样的数据,在不同的分析需求下,需要建立的模型可能也是不同的,这里结合财务报表分析的示例,介绍一下数据建模的一些思路。
1,只加载需要的表到模型中
在PowerQuery中生成的表可能有很多,从外部导入的表、自建的参数表、处理的中间表等,但并不是都需要加载到模型中,对于不需要的表,右键该查询>属性,去掉“启用加载到报表”的勾选。
在这个分析示例中,利用上篇抓取并整理的数据,去掉不必要的加载,进入模型的表有下面5个,根据公司代码建立关系。
2,梳理维度表
导入的表,一般是我们需要分析的数据,也常被称为事实表,但分析用的维度表往往是不完整的,需要添加新的维度表。
维度表可以在外部建立并导入进来,还利用DAX来添加。
在这个财务报表分析示例中,主要的维度是公司名称和年度、季度,从PowerQuery中加载进来后,已经有单独的公司表,可以直接用。
但并没有单独的年度季度表,不过从网页抓取的报表数据中含有年度和季度的数据,可以直接用DAX生成一个期间表,
根据分析需要,还应为这个期间表添加三个计算列:
季度 = MID([报表日期],6,2)/3 报表期间 = SWITCH( MID([报表日期],7,1), "2","年度报告", "3","第一季度", "6","中期报告", "9","第三季度" ) 期间编号 = ([报表年度]-2010)*4+[季度]
这样就形成了完善的期间表:
利用DAX构造的这个维度表,可以根据事实表中的数据自动更新。将这个期间表与数据表,根据报表日期列建立一对多的关系。
虽然很多分析报告中都有日期表,但在这个财务报表分析模型中,并不需要按日分析,因此无需建立标准的日期表,根据分析的粒度,建立含有年度和季度的维度表即可。
3,根据分析的需要,添加特定表
有些模型中,并不能简单的将某个表划分为事实表或者通常意义上的维度表,它是为某些特定的分析需要存在的。
比如在这个财务报表分析示例中,需要按通用的格式,来展现资产负债表、利润表和现金流量表,就需要先构造财务报表的结构表。比如资产负债表,先构造这样的结构表:
然后在可视化报告中,利用这个结构表,和矩阵可视化,来构造常见的资产负债表以及控制总计和小计的层次,后面的文章中会具体介绍。