在DAX里将空值或0显示为减号?这个问题可能困扰不少人!

– 问题 –

     近期碰到个很有意思的例子,一个度量值,其中判断某个值为0时,结果用减号“-”表示,不是0时执行相应的除法:在DAX里将空值或0显示为减号?这个问题可能困扰不少人!

      但是,明明用条件设置了这里应该显示为减号(“-”),但结果却显示为0%!!!为什么!!!

       ——不要一看到这种需求就说这是中国式报表的无理要求之类的,貌似很多老外也很喜欢这种表达方式!

– 原因 –

      为什么会出现这种情况呢?

      我猜(纯凭经验,没深究,不严谨),这可能是由于DAX中的类型自动转换导致的,因为“-”是DAX(也是很多其他编程语言)里唯一既作为运算符(减,如3-2)又同时是符号(负,如-1)的字符,所以,单独的“-”在参与度量计算的过程被转换成了类似[-blank()]的负数结果,-blank()也就等于0。

       换成其他的字符就不会,即使是换成“+”,比如:在DAX里将空值或0显示为减号?这个问题可能困扰不少人!

– 尝试 1 –

       那如果就是想表示成“-”的样子,该怎么办?

       我们首先想到的方法是给“-”前或后加上空格,但是,这没有用!见下图:在DAX里将空值或0显示为减号?这个问题可能困扰不少人!

       为什么?应该跟这个问题类似:《PP-数据建模:明明删除了重复项,为什么还是说有重复值?》,但在DAX公式里面,可以理解为符号前后的空格是不影响计算结果的。

– 尝试 2 –

       那还有其他什么办法?

       这个时候,根据对计算机字符集的了解(又是经验),可以加上一个不可见字符,如UNICODE字符集里第9个,如果在Excel的传统表格或Power BI里,可以轻松用UNICHAR(9)得到,可惜,在Excel的Power Pivot里,却没有UNICHAR这个函数(对于DAX函数的适用范围,可以在DAX.Guide网站上查到,这是DAX函数用法及案例最佳参考网站哦,拿走不谢!):在DAX里将空值或0显示为减号?这个问题可能困扰不少人!

       而且,我觉得以后也不太可能支持,因为,你看看前后就只差一个多月设计的对应的函数UNICODE,却一出来就是支持Excel的,现在4年过去了,UNICHAR却还没有支持Excel,实在没有搞懂为什么要这样:
在DAX里将空值或0显示为减号?这个问题可能困扰不少人!

– 最后的答案 –

       那,还能怎么办?

       ——当然是复制粘贴啊!

       先在Excel的传统表格里生成一个不可见字符,然后复制粘贴到DAX公式里:在DAX里将空值或0显示为减号?这个问题可能困扰不少人!
在DAX里将空值或0显示为减号?这个问题可能困扰不少人!

        好了,问题终于解决了,顺带,如果想要换行符,用unichar(10)……

来源:Excel到PowerBI,本文观点不代表自营销立场,网址:https://www.zyxiao.com/p/122232

发表评论

登录后才能评论
侵权联系
返回顶部