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

– 问题 –

近期碰到个很有意思的例子,一个度量值,其中判断某个值为0时,结果用减号“-”表示,不是0时执行相应的除法:

136be34314a57ba454d97dfa8ef5d707.png

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

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

– 原因 –

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

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

换成其他的字符就不会,即使是换成“+”,比如:

136be34314a57ba454d97dfa8ef5d707.png

– 尝试 1 –

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

我们首先想到的方法是给“-”前或后加上空格,但是,这没有用!见下图:

136be34314a57ba454d97dfa8ef5d707.png

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

– 尝试 2 –

那还有其他什么办法?

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

136be34314a57ba454d97dfa8ef5d707.png

而且,我觉得以后也不太可能支持,因为,你看看前后就只差一个多月设计的对应的函数UNICODE,却一出来就是支持Excel的,现在4年过去了,UNICHAR却还没有支持Excel,实在没有搞懂为什么要这样:

136be34314a57ba454d97dfa8ef5d707.png

– 最后的答案 –

那,还能怎么办?

——当然是复制粘贴啊!

先在Excel的传统表格里生成一个不可见字符,然后复制粘贴到DAX公式里:

136be34314a57ba454d97dfa8ef5d707.png

136be34314a57ba454d97dfa8ef5d707.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值