动态 DAX 数字格式化

14

我希望能够根据维度值(或者实际上,根据度量值的数量级)动态更改DAX度量的数字格式。

我了解可以使用SWITCHFORMAT,就像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。


你已经尝试过这种方法了吗?如果是的话,你能发布一下你使用的格式字符串吗? - dybzon
是的,我已经尝试过了。我可以很容易地按照自己的方式格式化度量单位 - 但问题在于使用FORMAT返回文本。我想要格式化动态数字值。 - Olly
你可以尝试一些预定义的数字格式吗?https://msdn.microsoft.com/zh-cn/query-bi/dax/pre-defined-numeric-formats-for-the-format-function - M O'Connell
无论格式是自定义还是预定义,FORMAT函数返回的是文本而不是数字。 - Olly
不可能的,伙计,但是请投票支持。我已经寻找解决方法有一段时间了。如果你想到了什么,请务必在这里发布。 - StelioK
使用计算组是可以实现的,你知道吗? - Przemyslaw Remin
3个回答

6

我不认为目前这是可能的,但这是一个受欢迎的功能请求,希望将来能够实现。

我建议投票并评论我提供的想法以增加您的支持。


1
一种解决方法是创建多个度量并将它们全部添加到图表中。根据您的维度值,只有一个度量返回值,所有其他度量都返回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()
  • 您的图表y轴的格式与其“Values”部分中的第一个度量相同。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接