IF和SWITCH函数是DAX中的两个逻辑判断函数,功能都是一样的,进行逻辑判断计算,进行多条件判断时,两者都可以实现,但是使用if会嵌套多个if,过程会有点繁琐,而使用switch就会简单明了,可读性也强。
1.IF函数
语法:if(条件,真的结果,假的结果)
判断使用的逻辑符:
等于使用“=”表示,逻辑与使用“&&”表示,逻辑或使用“||”表示,而逻辑非,通常使用NOT()函数来实现
举例:根据关键词成本判断区间
成本区间判断 = IF([测试成本]>300,"红色成本",IF([测试成本]>100,"黄色成本","绿色成本"))
为了突出,我设置了一下条件格式,在背景色-高级控件中设置,最小值,居中,最大值都可以自定义
2.SWITCH函数
语法:SWITCH(表达式,条件1,结果1,条件2,结果2,....<else>)
两种判断情况
①判断条件大于小于的情况:
还是使用上面if中的案例,使用switch编写:
成本区间判断2 = SWITCH(TRUE(),[测试成本]>300,"红色成本",[测试成本]>100,"黄色成本","绿色成本")
上面if嵌套不多,如果条件过多,if函数的嵌套就会很多,可读性较差,使用switch的话就会简单明了
解释:这里的true()是表示每个条件返回都可以是一个逻辑值
也就是说第一个参数如果是true,则第二参数必须是布尔类型即判断逻辑值,如果第一个参数是字段列,则第二个参数就是具体值,就符合第②种情况
②判断条件相等的情况:
如果上面例子不使用TRUE(),那么成本区间判断2的公式就会这样写:
成本区间判断2 = SWITCH('测试数据'[关键词],139,"黄色成本",589.5,"红色成本",118.8,"黄色成本".......)
后面会根据每个成本进行书写判断,无论书写还是可读性都很困难,所以在判断大小的情况时就要使用第①种情况,如果要判断条件相等的话,最好条件少,比如根据季度数判断季度,如:
条件相等 = SWITCH([季度转换值],1,"第一季度",2,"第二季度",3,"第三季度",4,"第四季度",BLANK())
今天就分享完了,如果解决了您的困惑,就动动发财小手点个赞吧,我是Sugargl,下次见,88
网友评论