条件判断是一个常见的需求,在Excel公式以及DAX中都很常用,大家都知道用IF函数,用法也非常简单,那么在PowerQuery的条件判断怎么做呢?这篇文件就来介绍一下。
对于简单的条件判断,PowerQuery甚至不用自己写函数,可以直接添加条件列来实现,比如下面这个数据。
如果要添加一列考核结果,如果科目一成绩大于等于70分为通过,否则未通过,可以直接添加条件列,在弹出的窗口中选择列名、判断条件和输出值:
然后表中就添加了一列判断的结果:
是不是非常简单。
添加条件列以后,可以在编辑栏中看到自动生成的M公式:
这就是M中的if函数,它的语法如下:
注意if、then、else必须全部是小写字母,并且M中的if不像Excel或者DAX,if 后面是不需要用括号的。
上面的例子,也可以直接添加自定义列,输入:
if [科目一] >= 70 then "通过" else "未通过"
结果也是相同的。
如果是复杂的条件判断,无法通过条件列实现的,直接通过自定义列,按照if then else的语法写公式即可。
对于多重判断,Excel和DAX的IF可以嵌套,M中的if也同样可以。
比如对上面的科目一成绩进行分类,大于等于90的为“优秀”、大于等于75的为“良好”、大于等于60的为及格,否则为“不及格”,用if添加自定义列可以这样写:
if [科目一] >= 90 then "优秀" else if [科目一] >= 75 then "良好" else if [科目一] >= 60 then "及格" else "不及格"
多重判断嵌套多个else if 语句就可以了,当然你也可以直接通过添加条件列,用多个子句来实现:
通过界面操作后,在编辑栏同样可以看到与上面自定义列一样的公式,他们的结果也是相同的:
如果是多个判断条件的集合,可以用 and/or 来连接多个条件。
假如还有个科目二,需要进行的判断逻辑是:科目一和科目二都大于等于90的为优秀、二科成绩之和大于等于140的为良好,否则未通过,这种就无法直接通过添加条件列来实现,而要用自定义列:
if [科目一]>=90 and [科目二] >=90 then "优秀" else if [科目一]+[科目二]>=140 then "良好" else "未通过"
联系客服