Power BI DAX功能超过2或conditon

时间:2018-04-20 06:14:28

标签: powerbi

您好我在电源BI中创建角色并按原理代码过滤表 -

例如role1 - 只能看到CKBD,CKRANP,DA原理的数据,因为我正在使用dax函数 -

OR([principlecode] = "CKB" ||  [principlecode] = "CKBD"|| [principlecode] = "DA")

但它的说法或条件只能有2个参数,有没有办法做到这一点?

谢谢

2 个答案:

答案 0 :(得分:0)

好的只需要删除或

([principlecode] = "CKB" ||  [principlecode] = "CKBD"|| [principlecode] = "DA")

答案 1 :(得分:0)

为清楚起见,DAX为逻辑OR(以及逻辑AND)提供了两个选项:

  1. OR功能(以及AND功能)
  2. 二进制||运算符(以及二进制&&运算符)
  3. OR函数正好接受两个参数来执行逻辑OR:

    OR([principlecode]="CKB", [principlecode]="CKBD"])
    

    要对您的示例执行此操作,您必须嵌套OR语句,因为DAX不会为函数提供超过2个参数:

    OR(OR([principlecode]="CKB", [principlecode]="CKBD"]),[principlecode] = "DA")
    

    非常难看,IMO。请注意,AND运算符具有相同的挑战:

    AND(AND(first_boolean, second_boolean), third_boolean)
    

    另一方面,二元运算符 ||在操作数之间执行逻辑OR,并允许链接语句(正如您在自己的答案中指出的那样):

    [principlecode] = "CKB" ||  [principlecode] = "CKBD"|| [principlecode] = "DA"
    

    同样,对于逻辑AND:

    first_boolean && second_boolean && third_boolean
    

    我不相信这两种方法之间存在任何性能成本差异。