Qlik Sense中多变量CAGR计算表达式实现求助
Qlik Sense中total_amt的CAGR计算表达式
完整度量表达式
( Sum({<Years={$(=Max(Years))}>} total_amt) / Sum({<Years={$(=If(Count(DISTINCT Years)=1, 2016, Min(Years)))}>} total_amt) ) ^ (1 / ($(=Max(Years)) - $(=If(Count(DISTINCT Years)=1, 2016, Min(Years))))) - 1
表达式逻辑说明
- 年份判断逻辑:
- 用
Count(DISTINCT Years)统计当前筛选面板中选中的年份数量 - 若仅选中1个年份,默认以2016作为起始年份;若选中2个年份,起始年份取选中年份的最小值
- 结束年份始终取选中年份的最大值
- 用
- 数值计算:
Sum({<Years={...}>} total_amt)提取对应年份的total_amt总和,自动适配flag_new筛选(未排除该筛选条件,用户筛选flag_new后,求和范围会自动匹配)- 套用CAGR公式:
(期末总额/期初总额)^(1/年份差) - 1
测试场景验证
- 选中2018和2016时,表达式计算:
((21000+90000)/(20000+30000))^(1/(2018-2016))-1,符合需求 - 仅选中2019时,表达式计算:
((20500+130000)/(20000+30000))^(1/(2019-2016))-1,符合需求 - 筛选
flag_new=new并选中2019和2016时,表达式计算:(20500/20000)^(1/3)-1,支持按flag_new筛选
内容的提问来源于stack exchange,提问作者Stev W
相关产品推荐
相关产品推荐

