Power BI中带固定年追加额的复利计算问题求解
修正DAX度量值以纳入追加金额的复利计算
业务需求
计算2026年至2056年的复利,追加规则如下:
- 2027年(与2026年间隔1年)追加1.00
- 2028年及以后每年追加2.00
- 所有追加金额需计入下一年的复利计算(示例:2026年100→2027年100*(1+2%)+1=103→2028年103*(1+2%)+2=107.06)
原DAX度量值
CPI = VAR selectedyear = MAX(Years[Year]) VAR currentyear = 2026 VAR rate = Rents[Percentage Increase] RETURN SUM(Rents[Current Rent Charge]) * POWER((1.01 + rate),selectedyear-currentyear)
尝试的错误度量值
TEST CPI + 1% Bedrooms = VAR selectedyear = MAX(Years[Year]) VAR currentyear = 2026 // this might need to be calculated VAR rate = Rents[Percentage Increase] VAR AdditionalValue = if(selectedyear-currentyear = 1,1.00,IF(selectedyear-currentyear > 1,2.00,0.00)) VAR Calc = AdditionalValue +SUM(Rents[Current Rent Charge])/COUNT(Rents[HMS Property Ref No#]) * POWER((1.01 + rate),selectedyear-currentyear) RETURN Calc
修正后的DAX度量值
CPI with Additional = VAR selectedyear = MAX(Years[Year]) VAR currentyear = 2026 VAR year_diff = selectedyear - currentyear VAR growth_rate = 1.01 + MAX(Rents[Percentage Increase]) // 合并基础增长率与租金涨幅 VAR avg_initial_rent = SUM(Rents[Current Rent Charge]) / COUNT(Rents[HMS Property Ref No#]) // 对齐原逻辑的单房初始租金 // 计算所有追加金额的复利终值总和 VAR additional_compound_total = SWITCH( TRUE(), year_diff = 0, 0, // 2026年无追加 year_diff = 1, 1, // 2027年仅追加1,无后续复利 // 2028年及以后:第一年追加的1的复利 + 后续每年追加2的复利总和 1 * POWER(growth_rate, year_diff - 1) + SUMX( GENERATESERIES(2, year_diff), 2 * POWER(growth_rate, year_diff - [Value]) ) ) // 总金额 = 初始租金复利终值 + 追加金额复利终值总和 RETURN avg_initial_rent * POWER(growth_rate, year_diff) + additional_compound_total
修正说明
原度量值的核心问题是仅将追加额直接叠加在初始租金的复利结果上,未计算追加额在后续年份的复利增长。修正方案通过:
- 单独计算初始租金的复利终值
- 逐笔计算每一笔追加金额的复利终值(2027年的1元会在后续年份持续复利,2028年及以后的2元也会在后续年份复利)
- 将两部分结果相加,完全符合业务规则的复利滚动计算逻辑
内容的提问来源于stack exchange,提问作者mcclay R
相关产品推荐
相关产品推荐

