前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在 Power BI 中计算投资回收期

如何在 Power BI 中计算投资回收期

作者头像
BI佐罗
发布2023-03-01 15:53:48
6430
发布2023-03-01 15:53:48
举报
文章被收录于专栏:PowerBI战友联盟PowerBI战友联盟

自《业财一体化演示平台》案例发布以来,大家对于其中如何实现的细节产生了很多好奇,特别是如何在 Power BI 计算投资回收期,本文将针对投资回收期做具体实现分享。

场景描述

投资回收期是投资决策分析中一个重要的参考指标,它是指投资资金刚好收回所需的投资年限。投资回收期计算一般有两种:一是静态投资回收期:指在不考虑资金时间价值的条件下,投资项目的净收益回收其全部投资所需要的时间;二是动态投资回收期:即在考虑资金时间价值的条件下,投资项目的净收益回收其全部投资所需要的时间。下面以静态投资回收期为例,来说明在 Power BI 中如何计算投资回收期。

具体实现分享

一般而言,在计算投资回收期前,我们需要有一个未来投资期间现金流量的预测表,如下:

投资期限(月)

当期现金流出

当期现金流入

当期现金净流量

累计现金净流量

0

2000

0

-2,000

-2,000

1

400

200

-200

-2,200

2

400

220

-180

-2,380

3

400

242

-158

-2,538

4

400

266

-134

-2,672

5

400

293

-107

-2,779

6

400

322

-78

-2,857

7

400

354

-46

-2,903

8

400

390

-10

-2,913

9

400

429

29

-2,884

10

400

472

72

-2,813

11

400

519

119

-2,694

12

400

571

171

-2,523

13

400

628

228

-2,295

14

400

690

290

-2,005

15

400

759

359

-1,646

16

400

835

435

-1,210

17

400

919

519

-691

18

400

1,011

611

-80

19

400

1,112

712

632

20

400

1,223

823

1,455

21

400

1,345

945

2,400

22

400

1,480

1,080

3,481

.........

.........

.........

.........

.........

从该表就可以看出投资回收期为 18+80/712=18.11 (月)。因此,如果用 DAX 表达式计算投资回收期也需要:

1)构建自定义投资日历表(投资时间轴)

2)计算当期现金净流量

3)计算累计现金净流量

完成以上三步后,接下来最关键的是使用 DAX 表达式计算出投资回收期。

下面分别说明:

1)构建自定义投资日历表(投资时间轴)

本步比较简单,也可以直接在 Excel 中完成,结构如下:

2)计算当期现金净流量

当期现金净流量可以使用当期现金流入 - 当期现金流出

这里先假设当期现金流出为恒定值,当期现金流入保持一个恒定的增长率。则有:

代码语言:javascript
复制
当期现金流出 = 
var InitialInvestment=2000 //初始投资额
var perPayment=400 //每期固定支出
return
 IF( VALUES('自定义投资日历表'[月序列])=0,InitialInvestment,perPayment)
代码语言:javascript
复制
当期现金流入 = 
var InitialIncome = 200 // 初始现金收入(第1期)
var GrowthRate= 0.1 // 后期增长率10%
return
 IF( 
     VALUES('自定义投资日历表'[月序列])=0,0,
     InitialIncome*POWER(1+GrowthRate,VALUES('自定义投资日历表'[月序列])-1)
 )
代码语言:javascript
复制
当期现金净流量 = 
SUMX(VALUES('自定义投资日历表'[月序列]),
    [当期现金流入]-[当期现金流出]
)

3)计算累计现金净流量

代码语言:javascript
复制
累计现金净流量 = 
CALCULATE(
    [当期现金净流量],
    FILTER(ALL('自定义投资日历表'),'自定义投资日历表'[月序列]<=MAX('自定义投资日历表'[月序列]))
)

最后基于以上三个度量值计算投资回收期:

代码语言:javascript
复制
投资回收期 = 
VAR cashTable= //先构建一个项目投资的现金流量表
ADDCOLUMNS(
    VALUES('自定义投资日历表'[月序列]),
    "Date",
    EDATE(DATE(1900,1,31),'自定义投资日历表'[月序列]-1),
    "Cashflow",
    [当期现金净流量],//各期现金净流量
    "ACCcashflow",//各期累计现金净流量
    CALCULATE(
        [累计现金净流量],
        FILTER(
            ALL('自定义投资日历表'),
            '自定义投资日历表'[月序列]<=EARLIER('自定义投资日历表'[月序列])
        )
    )
)
VAR FILTERtable=//筛选出累计现金净流量大于或等于0的部分
TOPN(
    1,
    FILTER(cashTable,[ACCcashflow]>=0),
    [ACCcashflow],
    ASC
)
RETURN
IF(
    COUNTROWS(FILTERtable)=0,"未回收",//没有满足条件的筛选结果,即没有收回投资
    SUMX(
        FILTERtable,
        '自定义投资日历表'[月序列]-1+DIVIDE([cashflow]-[ACCcashflow],[cashflow])
    ) //按插值算法计算回收期
)

用卡片图显示出来,可以看出结果与手工计算结果一致:

当然,实际投资分析中,每期的现金流量可能比较复杂,可以将增长率、初始投资额可以作为输入参数供用户自由调整;还有新投资的项目与公司历史的项目类似,是否可以基于历史项目的现金流量预测新项目的现金流量?等等,这些因素,在作品《业财一体化演示平台》中均有考虑。

该作品案例可直接参考:

excel120.com/go/case/zzfinance

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

本文分享自 PowerBI战友联盟 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 自《业财一体化演示平台》案例发布以来,大家对于其中如何实现的细节产生了很多好奇,特别是如何在 Power BI 计算投资回收期,本文将针对投资回收期做具体实现分享。
  • 场景描述
  • 具体实现分享
    • 1)构建自定义投资日历表(投资时间轴)
      • 2)计算当期现金净流量
        • 3)计算累计现金净流量
        相关产品与服务
        腾讯云 BI
        腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档