前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >公式惊现一堆问号,原来都是你们会的! | PQ解惑

公式惊现一堆问号,原来都是你们会的! | PQ解惑

作者头像
大海Power
发布2021-12-29 15:51:23
4470
发布2021-12-29 15:51:23
举报

前些天,群里有朋友抛了个图出来:

问,这些公式里怎么这么多问号?有1个(?)的,还有2个(??)的,还有3个(? ??)的……

其实,这个问题并不复杂,完全可以用已学过的知识来替代!以下分两种情况来进行说明:

- 1个问号 -

如:c{0}? ,这其实是Power Query用于简化列表取值的容错方法。

因为,对一个列表取某个位置的,非常有可能这个列表根本不存在这个位置的值,比如,列表c可能是空的,那你要取第1个值(c{0}),就会出错:

加上问号,将实现这种容错机制,在取不到值时,返回null:

实际上,这个可以写成:

代码语言:javascript
复制
try c{0} otherwise null

当然,如果非要深究两者有什么差异,还是有的:

比如,取1个值,而这个值是存在的,但是一个错误值

此时,两者是有差别的,加问号结果下图所示:

而用try...otherwise...,则会屏蔽掉该错误:

- 2个问号 -

如:x??y ,其实,这等同于

代码语言:javascript
复制
if x=null then y else x

然后,1个的和2个的结合在一起:c{0}? ??y,直接按上面的两种情况转换,即相当于:

代码语言:javascript
复制
if (try c{0} otherwise null)=null then y else c{0}

很长是不是?写成了问号感觉能省很多事,是不是?其实没这么复杂,真理解了这也就是:

代码语言:javascript
复制
try x otherwise y

说到底,就是if...then...else...和try...otherwise...两个简单写法的一种简写方式(专业称谓:语法糖),关于类似的问题还可以参考文章《什么叫“语法糖”?搞懂才不怕别人装13!| 附微软官方M语法及函数手册下载》。

日常工作中我其实一般不建议使用太多语法糖的写法,因为这一时之便其实省不了太多功夫,但对于步骤公式(代码)的阅读性却影响很大,尤其是在相关内容要和其他人进行分享时,使用传统直接的写法,更有利于互相之间的沟通和工作的开展

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel到PowerBI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档