BI中多年期间年均增长率计算方法咨询
BI中多年期间年均增长率计算方法咨询
你好!我来帮你拆解年均增长率的计算逻辑,结合你给出的数据和DAX代码一步步理清楚~
先明确你的基础数据
你已经筛选出2015-2018年的核心数据:
- 2015年数值:72
- 2016年数值:77
- 2017年数值:61
- 2018年数值:97
同时你已经算出两个关键指标:
- 期间总增长率:34.7%
- 最后一年增长率:6.5%
现在需要推导的是**年均增长率10.4%**的计算方法。
年均增长率的核心数学逻辑
年均增长率是基于复利增长的计算,公式为:
年均增长率 = (期末值 / 期初值)^(1/增长周期数) - 1
对应你的数据:
- 期初值:2015年的72
- 期末值:2018年的97
- 增长周期数:3(从2015到2018是3个年度增长周期:2015→2016、2016→2017、2017→2018)
代入计算:
- 先算期末/期初:
97 / 72 ≈ 1.347(刚好对应你算出的期间总增长率34.7%,因为1.347-1=0.347) - 开3次方:
1.347^(1/3) ≈ 1.104 - 减1得到年均增长率:
1.104 - 1 = 0.104,也就是10.4%
对应到DAX代码的实现
结合你已经写的DAX逻辑,我们可以把年均增长率的度量值写出来:
首先,你已经定义了期初和期末的度量值:
QT_VG_FIRST = CALCULATE(Discentes[QT_VG_TOTAL_SUM], FIRSTNONBLANK(Discentes[NU_YEAR_CENSO].[Year], 0)) QT_VG_LAST = CALCULATE(Discentes[QT_VG_TOTAL_SUM], DATESYTD(Discentes[NU_YEAR_CENSO],"12/31"))
接下来计算增长周期数(也就是年份差),或者直接统计筛选范围内的年度数量减1:
QT_VG_GROWTH_PERIODS = COUNTROWS(DISTINCT(Discentes[NU_YEAR_CENSO].[Year])) - 1
最后计算年均增长率:
QT_VG_ANNUAL_AVG_GROWTH = IF( [QT_VG_FIRST] = 0, 0, POWER(DIVIDE([QT_VG_LAST], [QT_VG_FIRST]), 1/[QT_VG_GROWTH_PERIODS]) - 1 )
这样计算出来的结果就是你需要的10.4%啦~
补充你提到的最后一年增长率的完整DAX
你给出了获取倒数第二年数值的度量值:
QT_VG_PENÚLTIMO = CALCULATE([QT_VG_TOTAL_SUM], DATEADD(LASTNONBLANK(Discentes[NU_YEAR_CENSO], 0), -1, YEAR))
对应的最后一年增长率度量值可以补充为:
QT_VG_LAST_YEAR_GROWTH = DIVIDE([QT_VG_LAST]-[QT_VG_PENÚLTIMO], [QT_VG_PENÚLTIMO], 0)
备注:内容来源于stack exchange,提问作者gustavofarias10




