如何编写DAX实现CountryMonth表从指定月份开始的递增度量计算
DAX 度量值实现方案
- 前置准备:先创建数值参数「起始百分比 S」,取值范围0~100,增量为1,生成对应的度量值
S 值用于动态调整起始比例 - 新建度量值代码如下:
月度递增百分比 = VAR CurrentCountry = SELECTEDVALUE( CountryMonth[国家] ) // 取当前国家选中月份的order值,多选中时默认取最晚的月份,可把MAX改为MIN取最早月份 VAR SelectedMonthOrder = CALCULATE( MAX( CountryMonth[order] ), ALLSELECTED( CountryMonth[月份], CountryMonth[order] ), CountryMonth[Selected] > 0, CountryMonth[国家] = CurrentCountry ) VAR CurrentMonthOrder = SELECTEDVALUE( CountryMonth[order] ) VAR Result = SWITCH( TRUE(), // 无选中月份返回0% ISBLANK( SelectedMonthOrder ), 0, // 选中月份之前返回0% CurrentMonthOrder < SelectedMonthOrder, 0, // 选中月及之后按规则计算 ([S 值] + ( CurrentMonthOrder - SelectedMonthOrder ) * 3 ) / 100 ) RETURN Result
- 配置说明:
- 度量值创建完成后,可在建模面板将其格式设置为「百分比」,按需调整小数显示位数
- 当前代码适配你已有的财年order列规则,无需额外调整月份排序逻辑
- 若不需要动态调整S,可直接把代码中的
[S 值]替换为固定数值,比如50即可
内容的提问来源于stack exchange,提问作者marcinn
相关产品推荐
相关产品推荐

