前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Power BI 构造财务利润表的极简方式

Power BI 构造财务利润表的极简方式

作者头像
wujunmin
发布2024-04-17 13:22:42
1230
发布2024-04-17 13:22:42
举报
文章被收录于专栏:wujunminwujunmin

上市公司的财报通常包含如下格式的表格。这个表格的困难之处在于,项目之间不是独立存在的,有些项目是由别的项目加减计算得到的。例如毛利等于收入减销售成本。 Excel有很大的灵活性,插入行就可以搞定这样的表格,Power BI则不然。

摘自港交所某上市公司报表

Power BI的表格格式不灵活,不意味着实现不了。以下是实现结果:

也不意味着数据源需要重构复杂结构,基础数据还是这么简单:

那么,这是如何办到的?

这里我们巧妙利用了矩阵的总计栏进行中间过程展示,窗口函数进行上下滚动计算。

首先对数据源新增三个辅助列,计算分组列用于确定当前科目需要计算的下一个指标的名称,例如收入和成本后续需要计算毛利,分组就确定为毛利。

除了最终结果(本例为期内溢利)没有下一级需要计算的指标则分组直接填写当前科目,例如所得税开支。

对科目和计算分组都添加索引进行按列排序。这种数据结构可外部导入,也可SWITCH函数生成计算列。

新建如下四个度量值:

代码语言:javascript
复制
M.当前数据 = SUM('表'[值])

M.累计数据 = 
    CALCULATE (
        [M.当前数据],
        WINDOW (0, ABS, 0, REL, ALLSELECTED ( '表'[计算分组],'表'[计算分组索引],'表'[科目], '表'[科目索引] ), ORDERBY ('表'[科目索引] ))
    )
M.使用值 = IF (HASONEVALUE('表'[科目]),[M.当前数据],[M.累计数据])

M.科目名称 = SELECTEDVALUE('表'[科目],SELECTEDVALUE('表'[计算分组],"期内溢利"))

当前数据和累计数据为中间计算过程,展示层使用的是M.使用值度量值,当科目存在唯一值是返回当前值,否则进行滚动计算返回累计值。

矩阵如下拖拽字段:

我们得到了下图这样的表格,向左拖拽隐藏维度的科目列,显示度量值的科目,施工完成。

不同公司、不同交易所可能报表结构有所差异,设计思路都可以借鉴。如果对SVG比较了解,还可以在矩阵嵌入瀑布图,展示更直观:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 wujunmin 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档