代码之家  ›  专栏  ›  技术社区  ›  Przemyslaw Remin

带加号或减号的DAX数字格式

  •  0
  • Przemyslaw Remin  · 技术社区  · 6 年前

    我想格式化DAX measure以便 0.105 +10.5% ,和值 -0.105 显示为 -10.5% FORMAT(measure, "+0.0%") .

    我找不到任何有用的东西 FORMAT https://msdn.microsoft.com/query-bi/dax/custom-numeric-formats-for-the-format-function

    我唯一能想到的解决办法就是 IF SWITCH 功能。有办法避免吗?

    IF(variable>0, "+"&variable, variable)
    
    2 回复  |  直到 6 年前
        1
  •  5
  •   RADO    6 年前

    您需要为正数和负数创建自定义格式:

    Formatted Value = FORMAT( [Measure], "+0.0%;-0.0%")
    

    结果: enter image description here

    一般来说,自定义格式字符串由4部分组成,用分隔;

    Positive values; Negative values; Zero values; Text values
    

    一个部分是必需的,其他部分是可选的。因此,为了避免在零前面出现+号,完整的代码可能是:

    Formatted Value = FORMAT( [Measure], "+0.0%;-0.0%;"0")
    
        2
  •  0
  •   Przemyslaw Remin    4 年前

    我同意拉多的回答。最后我得到了一个解决方案,它克服了非常小的负分数值的问题,例如 -0.0001 四舍五入后可能变成正零 FORMAT 功能(见我们评论中的讨论)。

    Plus Minus Growth =
    SWITCH (
        TRUE (),
        ISBLANK ( [Growth] ), BLANK (),
        [Growth] >= 0, FORMAT ( [Growth], "+0.0 % ▲;-0.0 % ▼" ), -- positive here
        [Growth] <  0, FORMAT ( [Growth], "-0.0 % ▼;-0.0 % ▼" ), -- negative here
        BLANK ()
    )
    

    负小数,四舍五入为正零 格式 函数落在代码的第一部分 "-0.0 % ▼;-0.0 % ▼"