Power BI DAX 动态性能百分比计算公式编写咨询
前置准备
首先确保你的数据模型满足以下要求:
- 存在连续且被标记为日期表的日期维度表,包含年、月、年月等可用于筛选的维度字段
- 日期维度表和销售额事实表已建立单方向一对多关联
基础通用度量
两个场景都需要用到的基础度量先提前定义:
当月销售额 = SUM('销售表'[Sales])
场景1:对比2020年12月性能%
分母固定为2020年12月销售额,不受用户筛选的月份影响,度量写法如下:
性能%_同比2020年12月 = VAR 2020年12月销售额 = CALCULATE([当月销售额], ALL('日期表'), '日期表'[年] = 2020, '日期表'[月] = 12) RETURN DIVIDE([当月销售额], 2020年12月销售额, 0)
说明:DIVIDE第三个参数为分母为空/为0时的默认返回值,你可以根据需求调整为BLANK()
场景2:对比上月性能%
分母为用户选中月份的上一个月销售额,动态随筛选变动,度量写法如下:
性能%_环比上月 = VAR 上月销售额 = CALCULATE([当月销售额], PREVIOUSMONTH('日期表'[日期])) RETURN DIVIDE([当月销售额], 上月销售额, 0)
说明:若用户选中多个月份,该度量默认返回选中区间最后一个月和前一个月的比值
可选优化:双场景动态切换
如果需要让用户通过下拉选择切换两种计算逻辑,可按以下步骤配置:
- 新建独立计算表,用于存放计算类型选项:
计算类型 = DATATABLE("计算方式", STRING, {{"同比2020年12月"}, {"环比上月"}}) - 新建动态度量,读取用户选择的计算类型返回对应结果:
动态性能% = SWITCH( SELECTEDVALUE('计算类型'[计算方式]), "同比2020年12月", [性能%_同比2020年12月], "环比上月", [性能%_环比上月], 0 )
最后将上述百分比类度量的格式设置为百分比即可直接使用。
内容的提问来源于stack exchange,提问作者YashRastogi94
相关产品推荐
相关产品推荐

