Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 具有多个OR语句的幂BI、IF语句_If Statement_Powerbi_Dax - Fatal编程技术网

If statement 具有多个OR语句的幂BI、IF语句

If statement 具有多个OR语句的幂BI、IF语句,if-statement,powerbi,dax,If Statement,Powerbi,Dax,我有一个表,希望使用多个语句基于表中的某些列创建一个新列 我想这样做: NewColumn = if( (colA>colB and colC=0) or (colD >colE and colF = 20) or colG = "blue", "True", "False") 我该如何在DAX中编写此代码?这将是正确的语法。注意不要用大写字母写 = if ([ColumnA] > [Colum

我有一个表,希望使用多个语句基于表中的某些列创建一个新列

我想这样做:

NewColumn  = if( (colA>colB and colC=0)
             or (colD >colE and colF = 20)
             or colG = "blue",
             "True", "False") 

我该如何在DAX中编写此代码?

这将是正确的语法。注意不要用大写字母写

= if ([ColumnA] > [ColumnB] and [ColumnC] = 0) or 
     ([ColumnD] > [ColumnE] and [ColumnF] = 20) or 
     [ColumnG] = "blue" 
  then true 
  else false

这将是正确的语法。注意不要用大写字母写

= if ([ColumnA] > [ColumnB] and [ColumnC] = 0) or 
     ([ColumnD] > [ColumnE] and [ColumnF] = 20) or 
     [ColumnG] = "blue" 
  then true 
  else false

在DAX中,您应该这样写:

test = 
IF(
    OR(
        OR(
            AND(
                [A]>[B]; 
                [C] = 0
            ); 
            AND(
                [D]>[E]; 
                [F] = 20
            )
        ); 
        [G] = "Blue"
    ); 
    "True"; 
    "False"
)
然而,我相信通过使用类似的方法,您会得到相同的结果,尽管您应该再次检查此代码,因为我没有您的数据

New = 
SWITCH(
    TRUE();
    [A] > [B] && [C] = 0; "True";
    [D] > [E] && [F] = 20; "True";
    [G] = "Blue"; "True";
    "False"
)

在DAX中,您应该这样写:

test = 
IF(
    OR(
        OR(
            AND(
                [A]>[B]; 
                [C] = 0
            ); 
            AND(
                [D]>[E]; 
                [F] = 20
            )
        ); 
        [G] = "Blue"
    ); 
    "True"; 
    "False"
)
然而,我相信通过使用类似的方法,您会得到相同的结果,尽管您应该再次检查此代码,因为我没有您的数据

New = 
SWITCH(
    TRUE();
    [A] > [B] && [C] = 0; "True";
    [D] > [E] && [F] = 20; "True";
    [G] = "Blue"; "True";
    "False"
)

这是无效的DAXSure,它在“添加列”>“自定义列”下的查询编辑器中对我有效。如果你看他的问题,他想在他的表中创建一个新列。@在本例中,M(Power Query)语言用于创建(作为数据加载过程中的一个额外步骤)一个新列,而不是DAX(计算列),因此,
IF
语句是完全有效的。@NickKrasnov那么我认为应该明确说明它是powerquery而不是DAX,因为问题是针对DAX的,但这是powerquery中的一个有效替代方法这通常是个问题,问这个问题的人不知道DAX和M之间的区别。大多数人认为Power BI都是关于DAX的,因此我提供了一个独立于语言的答案。这是无效的DAX,因为它在查询编辑器的“添加列”>“自定义列”下对我有效。如果你看他的问题,他想在他的表中创建一个新列。@在本例中,M(Power Query)语言用于创建(作为数据加载过程中的一个额外步骤)一个新列,而不是DAX(计算列),因此,
IF
语句是完全有效的。@NickKrasnov那么我认为应该明确说明它是powerquery而不是DAX,因为问题是针对DAX的,但这是powerquery中的一个有效替代方法这通常是个问题,问这个问题的人不知道DAX和M之间的区别。大多数人认为Power BI都是关于DAX的,因此我提供了一个独立于语言的答案。我很高兴它对你有用。你可以查看此页面了解更多信息:我必须更改;对,在代码中,但在其他方面都很好:)我很高兴它为你工作。你可以查看此页面了解更多信息:我必须更改;到,在代码中,但在其他方面都很好:)