接上文:创建利润表分析报表(总结篇)
现金流量表反映了公司在一段时间内现金的增减变动。
本节创建的现金流量表分析页面,能根据报表使用人选定的年月,展示出在该时间段内主要项目的现金增减变动情况及其变化趋势,效果如下:

由于在导入利润表数据时,现金流量表的相关数据也一并导入了,因此本节可以直接编写度量值并创建可视化视觉对象。
一、创建现金流量表矩阵
现金流量表的大部分项目与利润表的项目一样,均为时期数据,可以简单累加。
但「加:期初现金及现金等价物余额」和「六、期末现金及现金等价物余额」这两个项目与资产负债表的项目类似,是时点数据,不能直接累加,因此,在创建现金流量表矩阵时需要特别处理。
具体步骤如下:
1、设置筛选条件
(1)为了减少重复设置,鼠标右键单击「利润表分析页面」,选择「复制页」,重命名为「现金流量表」。

(2)单击展开「筛选器」窗口,在「此页上的筛选器」中选择「现金流量表」。

(3)删除「选择当月数或累计数」和「金额和收入%」切片器,「利润构成」和「收入与成本变化趋势」视觉对象。

选中「月」切片器,单击「设置视觉对象格式-视觉对象-切片器设置-选项-样式」,选择「介于」。

这种样式的切片器可以通过拖动「滑竿」快速选取几个连续的月份。
2、编写度量值

现金流量表同时具备利润表和资产负债表的特点,在编写度量值时,需要对最后两个项目另外处理,DAX表达式如下:
财务报表:现金流量.金额 =
VAR curItem=SELECTEDVALUE('D财务科目信息表'[项目关联名称])
RETURN
SWITCH(TRUE,
curItem="加:期初现金及现金等价物余额",
FIRSTNONBLANKVALUE('D日期表'[Date],[财务报表:基本.金额]),
curItem="六、期末现金及现金等价物余额",
LASTNONBLANKVALUE('D日期表'[Date],[财务报表:基本.金额]),
[财务报表:基本.金额]
)
这里使用了 FIRSTNONBLANKVALUE 函数和 LASTNONBLANKVALUE 函数,看上去长,但不难理解。
比如「月」切片器选择了1-5月,现金流量表的项目除了最后两个项目,都可以累加。

「加:期初现金及现金等价物余额」项目应该是指1月初的现金余额,用 FIRSTNONBLANKVALUE 函数可以返回第一个不为空的值,即1月初的现金余额。
「六:期末现金及现金等价物余额」应该是指5月末的现金余额,用 LASTNONBLANKVALUE 函数可以返回最后一个不为空的值,即5月末的现金余额。

虽然矩阵类似于 Excel 中的透视表,但存在类似于上述需要个别处理的项目时,使用 Excel 透视表自动计算出来的结果不符合业务逻辑。
而在 Power BI 中可以通过 DAX 表达式定义矩阵的输出结果,用于应对复杂的业务逻辑计算。
和利润表矩阵类似,现金流量表项目之间的方向也不同。
为了能够在矩阵中更直观地看出哪些是现金流出,哪些是现金流入,还需要编写一个显示结果的度量值,具体如下:
财务报表:现金流量.金额显示 =
IF(
MAX('D财务科目信息表'[方向])="借",
[财务报表:现金流量.金额],-[财务报表:现金流量.金额]
)

今天就到这,下期我们来讲「设置矩阵格式」。
参考书籍:《智能管理会计:从 Excel 到 Power BI 的业务与财务分析》张震