打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

- 问题 -

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

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

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

- 原因 -

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

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

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

- 尝试 1 -

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

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

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

- 尝试 2 -

       那还有其他什么办法?

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

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

- 最后的答案 -

       那,还能怎么办?

       ——当然是复制粘贴啊!

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


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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
如何批量获取所有汉字?用excel啊,1分钟获取20902个汉字
2017年最全的excel函数大全8—文本函数(下)
DAX中的Calcualte函数虽然复杂,但是还是有章可循的 - Power Excel
你会超级透视表吗?比Excel透视表好用10倍都不止!
这应该是DAX中最重要的函数了:Calculate - Power Excel
excel2010.24-文本公式一些高级应用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服