我想基于维度值(或者实际上,基于度量值的数量级)动态更改DAX度量的数字格式。
我知道我可以使用SWITCH
和FORMAT
,如Kaspar De Jonge所示:https://www.kasperonbi.com/dynamic-format-using-dax/
以下是我创建的衡量类型的示例:
My Measure:=IF (
HASONEVALUE ( dimMeasureType[Measure Type] ),
SWITCH ( VALUES ( dimMeasureType[Measure Type] ),
"Total Cost", FORMAT ( [Total Cost], "#,##0, k" ),
"Cost Per Unit", FORMAT ( [Cost Per Unit], "#,##0.00" ),
"Cost % Sales", FORMAT ( [Cost % Sales], "0.00%" ),
BLANK()
),
BLANK()
)
但是这种技术会返回文本度量。我需要能够绘制我的度量图表,所以我不想将它们转换为文本。是否有另一种技术可以动态更改度量数字格式,而无需转换为字符串?
如果它有所作为,我在SQL Server 2016 BI上使用SSAS-Tabular。
答案 0 :(得分:5)
我不认为这目前是可能的,但是它有望在将来实现popular feature request。
我建议对链接到的想法进行投票和评论,以增加您的支持。
答案 1 :(得分:0)
一种解决方法是创建多个度量并将其全部添加到图表中。根据维值,只有一个度量返回值,所有其他度量都返回BLANK()
,并且不会显示在图表中。您可以通过在名称末尾添加空格来为它们提供相同的显示名称:
My Measure:=IF (
SELECTEDVALUE( dimMeasureType[Measure Type] ) = "Total Cost",
[Total Cost],
BLANK()
)
[My Measure ]:=IF (
SELECTEDVALUE( dimMeasureType[Measure Type] ) = "Cost Per Unit",
[Cost Per Unit],
BLANK()
)
[My Measure ]:=IF (
SELECTEDVALUE( dimMeasureType[Measure Type] ) = "Cost % Sales",
[Cost % Sales],
BLANK()
)
但这有一些缺点:
BLANK()
。