如何在Power BI中根据度量值结果条件显示小数位数
DAX度量值动态小数位数实现方法
可以实现,不需要额外创建计算列,两种方案可选,优先推荐第一种:
方案1:动态格式字符串(推荐)
该方案不会改变度量值的数值类型,不影响排序、后续联动计算,不会出现文本排序错乱问题。
操作步骤:
- 保留你原有度量值的计算逻辑,建议把直接除法替换为
DIVIDE函数避免除0报错,写法参考:SimpleMeasure = DIVIDE(MyTable[Column1], MyTable[Column2]) - 选中该度量值,在「度量值工具」选项卡的格式设置区,将格式模式从「静态」切换为「动态」
- 在动态格式公式框中输入以下判断逻辑:
VAR CurrVal = [SimpleMeasure] RETURN SWITCH( TRUE(), CurrVal < 1, "0.00", CurrVal = INT(CurrVal), "0", "0.00" )
逻辑说明:数值小于1时固定保留两位小数;数值为整数时不显示小数位;大于1的非整数默认保留两位,可根据自身需求修改最后一个分支的格式串。
方案2:FORMAT函数返回格式化文本(兼容旧版本)
如果你的Power BI版本不支持动态格式字符串,可以直接通过FORMAT函数返回文本结果,注意该方案返回值为文本类型,排序规则为文本排序,若有后续数值计算需求不推荐使用。
度量值写法如下:
SimpleMeasure = VAR CalcVal = DIVIDE(MyTable[Column1], MyTable[Column2]) RETURN SWITCH( TRUE(), CalcVal < 1, FORMAT(CalcVal, "0.00"), CalcVal = INT(CalcVal), FORMAT(CalcVal, "0"), FORMAT(CalcVal, "0.00") )
按上述配置后,即可达到你要的展示效果:整数直接显示整数值,小于1的数值保留两位小数,不会出现500.00这类多余小数位,也不会把0.56这类小数四舍五入为整数,和你给出的示例表格展示效果完全一致。
内容的提问来源于stack exchange,提问作者Conner
相关产品推荐
相关产品推荐

