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

Posted

技术标签:

【中文标题】带有加号或减号的 DAX 数字格式【英文标题】:DAX number format with a plus or minus sign 【发布时间】:2019-01-26 15:12:17 【问题描述】:

我想格式化 DAX 度量,以便值 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

我能想到的唯一解决方案是使用IFSWITCH 函数处理它。有办法避免吗?

IF(variable>0, "+"&variable, variable)

【问题讨论】:

FORMAT(measure, "+0.0%") 在 PowerBI 中非常适合我。到底是什么让你失败了? 你试过负值吗?使用FORMAT(measure, "+0.0%") 我得到+-10.5% 【参考方案1】:

也许我玩的有点晚了。是的,以前在 Power BI 中格式化括号中的负数有点困难。正如其他答案所暗示的那样,它将涉及 FORMAT 函数。但是今天您可以对度量使用自定义格式。例如“#,##0.0, (#.##0.0)”。希望有帮助。您可以在此处找到更详细的解释:

Format Negative values between Parentheses

继续粉碎它!

瑞克

【讨论】:

【参考方案2】:

我将 RADO 的回答视为已接受。我最终得到了解决方案,它克服了非常小的负小数值的问题 - 例如-0.0001 的值在通过FORMAT 函数四舍五入后可能变为正零(请参阅我们的 cmets 中的讨论)。

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 ()
)

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

【讨论】:

【参考方案3】:

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

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

结果:

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

Positive values; Negative values; Zero values; Text values

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

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

【讨论】:

你从哪里得到的?您可以链接到答案中的文档吗?我的意思是自定义格式的 4 个参数。 格式为 DAX 使用常规 Excel 自定义格式规则。我熟记于心,但谷歌“Excel 自定义格式” 您的解决方案存在错误。如果 [measure]=-0.001(注意减号),则 FORMAT( [Measure], "+0.0%;-0.0%) 返回 +0.0%,这是错误的。期望的结果将是 -0.0%。假设您有绝对值比如说 -123(下降)和百分比值,由我们的度量显示,结果 +0.0% 将具有不同的符号。 我无法重现您的问题。我的模型显示 -0.1% 抱歉 [measure]=-0.00001 请把它弄小一点。

以上是关于带有加号或减号的 DAX 数字格式的主要内容,如果未能解决你的问题,请参考以下文章

怎么样辨别负号是减号还是负号?

第九十四章 SQL函数 %MINUS

CSS可以用来使标准的加号和减号的宽度相同吗?

使用VBA为负数设置带有千位分隔符、2位小数和减号的标准数字格式?

delphi中如何让文本框只输入数字、减号、小数点、汉字和退格键

计算表达式的值并输出,表达式由若干个数字和运算符(只包含加号和减号)构成