pq 中m函数判断嵌套_PQ里try的真正用法!99%的人都不知道!

Power新书榜第1 | 最适合入门打基础

当当书香节,图书折后再满100减50

超级划算啊!

      关于在Power Query里进行错误处理,我们都说try...otherwise的组合,这个在我的文章《PQ-M及函数:错误处理语句 try ... otherwise ...,跟Excel里的IFERROR就是一样的》或书里都直接作为标准基础知识进行介绍。

       显然,try...otherwise...语句,就等同于Excel里的IFERROR。在此略过不重提。

015aa69b62c620a15f11feb7eff47b37.png

       但是,有一个情况我们一直没有提,在Excel中,除了IFERROR,我们还经常用IF+ISERROR的组合方式,那么,如果要在PQ里也实现这样的组合方式,该怎么办?比如下面这个例子:

c654825cae9682fc87bf32da670607df.png

      这个问题的常见解法,即用函数Number.From对内容进行转换,看是否为数值,如果是,则用null表示,否则用原来的值——这个需要似乎刚好跟try...otherwise...实现的结果相反。

       那么,该如何判断Number.From函数得到的结果为true或false的情况?

       实际上,我们一直没有讲try的真正用法——try其实可以单独使用,而跟otherwise组合使用只是其用法之一而已。我们添加个自定义列试一下:

0294ab7188674446589d3a357bfdf048.png

       结果如下:

ebbfb57c727607e75f9cd6bb96973dc2.png

     得到的竟然是一个Record!,而且这个Record里面还嵌套这一个Record,我们可以点开其中一个看一下:

73c0d02b4c0adb4b0dfb47b261ee8340.png

       也就是说,try语句单独使用时,如果出现错误,则会针对其内容得到一个包含4个信息的嵌套式的Record(记录):

c1fb373f0574de4b2c6b1ad615d70108.png

       显然,其中的第一项[HasError]就是对于是否出错的判断,对“一、公众号”这项内容,Number.From函数调用的结果就会出错,所以,HasError为TRUE。

       如果我们查看下面一个Record,你会看到结果时FALSE:

7096212b484278cdf3a5a31a2c7c7d45.png

     因为Number.From(“1”)会得到1,没有错,所以HasError的值为FALSE,而且得到的记录里直接包含了转换的结果Value。

      既然try能够得到HasError的判断结果,那上面的问题就迎刃而解了,我们可以直接从try的结果(Record)中提出来其HasError的值用于判断(记得把try这一段用括号包起来哦,因为那是个整体),具体方法如下:

a6cbcc45a0ded8dc998ed9dcd3df4d24.png

      这,其实就跟Excel中的IF+ERROR组合一样了。

      如果觉得上面的例子可能稍微有点儿绕,一定要自己动手分步骤试一下,不仅有利于理解try的用法,也有利于进一步加深对Power Query中记录的结构及其取值的方法哦。

最通俗易懂Power系列视频 -

购书领60元视频券 or 直购视频送签名书

de93b459e49f3afdaf6df26867930dd5.png

点亮“在看”

转发朋友圈

下载本文配套材料

https://share.weiyun.com/5YKFr4Z

点“阅读原文”看视频

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值