欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

处理 Power Query 多条件判断中的空值

最编程 2024-07-15 12:43:13
...

小勤:为什么这个对折扣按条件分级的判断结果会出错啊?

Power Query里多条件判断时需要注意的null值处理问题_自定义

大海:你这折扣中有空值(null)啊。

小勤:那不是判断语句的最后用else处理了吗?null值的结果不就应该是“低”嘛?

大海:你看看错误提示?

小勤:啊。什么叫无法将null转换为类型Logical?

Power Query里多条件判断时需要注意的null值处理问题_自定义_02

大海:也就是说,null值是不能作为判断条件的,跟Excel里不太一样,Excel里的空值就相当于False。

小勤:那是不是在后面加个对null值的判断就可以了?

大海:你试试?

小勤:还是不对啊,你看:

Power Query里多条件判断时需要注意的null值处理问题_条件判断_03

大海:你把null值处理条件放到最前面试试?

小勤:这会儿正确了:

Power Query里多条件判断时需要注意的null值处理问题_数据_04


小勤:对了,条件判断语句写完后,每次再点这个步骤后面的步骤设置按钮时,就变成了上面的条件设置窗口,其实习惯了直接写语句的话,这个都不方便啊,怎么再调整回添加自定义那个窗口啊?

大海:这个嘛可以慢慢习惯一下,连语句都不用敲了。其实,我也觉得有点烦,也不知道是否有什么特别好的办法。我每次都是把一个条件中的等号改掉(比如改成减号),这样就会出错,然后就可以单击这个步骤右侧的设置按钮而出现公式输入窗口了,然后再把符号改回来,但有时候原来缩进好的代码格式会损坏,如果你找到什么更好的办法的话,也记得告诉我:

Power Query里多条件判断时需要注意的null值处理问题_自定义_05

小勤:可是,为什么一定要将null值的处理放在最前面呢?

大海:在Power Query里,null值跟其他东西的比较遵循下面的基本规则:

  • null = 数值,结果为false;

  • null > 数值,结果为null;

  • null < 数值,结果为null。

       所以,你如果一开始不把null值处理掉的话,那么在有null值的地方,就会先跟数值做对比,这样的结果还是null值,而不是true或false,所以条件判断的结果就出现错误了。

小勤:原来这样。这个null值真是麻烦。但是,像这种烦人的规则怎么记得了那么多啊?

大海:其实你只要记住null值是个特殊的东西(在很多的软件或变成语言里,null值的处理规则都可能不太一样),然后学会在实际中碰到问题时怎么查到其相应的结果就行了。比如null值跟数值比较的结果,你可以直接在Power Query里做测试:

Power Query里多条件判断时需要注意的null值处理问题_自定义_06

小勤:这个方法好,那些规则真是记不住啊!



推荐阅读