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
PowerBI—自定义列—多条件IF语句_Powerbi_Dax - Fatal编程技术网

PowerBI—自定义列—多条件IF语句

PowerBI—自定义列—多条件IF语句,powerbi,dax,Powerbi,Dax,这里是初学者,非常需要你的帮助 基本上,我需要一个新列来获取图像中显示的任一列的值,除非两列都为null。如果两者都为空,则新列应显示“未输入规程” 我的PowerBI版本在“编辑查询”窗口中只有“添加自定义列”选项。我尝试过使用下面的解决方案,但我显然有一个概念错误,没有正确地使用这些解决方案。 我感谢你的耐心和帮助 如果您想在DAX中执行此操作,我建议使用开关TRUE。。。方法代替嵌套的if语句,该语句解释得很好。我相信这会产生预期的结果;根据你的截图,我假设那些空值是文本字符串,而不是空

这里是初学者,非常需要你的帮助

基本上,我需要一个新列来获取图像中显示的任一列的值,除非两列都为null。如果两者都为空,则新列应显示“未输入规程”

我的PowerBI版本在“编辑查询”窗口中只有“添加自定义列”选项。我尝试过使用下面的解决方案,但我显然有一个概念错误,没有正确地使用这些解决方案。 我感谢你的耐心和帮助


如果您想在DAX中执行此操作,我建议使用开关TRUE。。。方法代替嵌套的if语句,该语句解释得很好。我相信这会产生预期的结果;根据你的截图,我假设那些空值是文本字符串,而不是空值。如果为真空,PowerBI将使用BLANK


计算结果为TRUE的第一个条件将优先

如果您想在DAX中执行此操作,我建议使用开关TRUE。。。方法代替嵌套的if语句,该语句解释得很好。我相信这会产生预期的结果;根据你的截图,我假设那些空值是文本字符串,而不是空值。如果为真空,PowerBI将使用BLANK

计算结果为TRUE的第一个条件将优先

嵌套IF对此来说还不错:

IF([PIDISC] = "null" && [PI_DISC] = "null",
   "NO DISC ENTERED,
   IF([PIDISC] = "null",
      [PI_DISC],
      [PIDISC]
   )
)

编辑:

由于您正在尝试在查询编辑器中工作,您的M语言自定义列可能如下所示:

if [PIDISC] = "null" and [PI_DISC] = "null"
 then "NO DISC ENTERED"
else if [PIDISC] = "null" then [PI_DISC]
else if [PI_DISC] = "null" then [PIDISC]
else "Else Condition"

嵌套的IF对此来说还不错:

IF([PIDISC] = "null" && [PI_DISC] = "null",
   "NO DISC ENTERED,
   IF([PIDISC] = "null",
      [PI_DISC],
      [PIDISC]
   )
)

编辑:

由于您正在尝试在查询编辑器中工作,您的M语言自定义列可能如下所示:

if [PIDISC] = "null" and [PI_DISC] = "null"
 then "NO DISC ENTERED"
else if [PIDISC] = "null" then [PI_DISC]
else if [PI_DISC] = "null" then [PIDISC]
else "Else Condition"


怎么了?根据您是否具有空字符串或空值,这两个选项中的任何一个都应起作用:

空的

测试:

空白


希望这有帮助

怎么了?根据您是否具有空字符串或空值,这两个选项中的任何一个都应起作用:

空的

测试:

空白


希望这有帮助

获取表达式的原因。错误:名称。。。错误是因为您试图在Power Query editor中输入DAX公式。Power Query使用另一种称为M的语言,不识别DAX。您可以通过两种方式解决此问题:

1退出查询编辑器,在PowerBI窗口中,转到选项卡建模并创建新列。在那里输入DAX公式

2如果您希望解决Power Query中的问题,请在其中创建一个自定义列,然后输入以下M公式:

each List.First(List.RemoveNulls({[PIDISK], [PI_DISK]}), "No Disk Entered"))

公式的工作原理:List.RemoveNulls从您提供的列列表中删除空值。然后从结果中选取第一个值;如果没有,则使用默认选项no disk entered。只要确保你的空值真的是空值

获取表达式的原因。错误:名称。。。错误是因为您试图在Power Query editor中输入DAX公式。Power Query使用另一种称为M的语言,不识别DAX。您可以通过两种方式解决此问题:

1退出查询编辑器,在PowerBI窗口中,转到选项卡建模并创建新列。在那里输入DAX公式

如果希望在该列中创建自定义幂,请在其中输入M以解决问题:

each List.First(List.RemoveNulls({[PIDISK], [PI_DISK]}), "No Disk Entered"))

公式的工作原理:List.RemoveNulls从您提供的列列表中删除空值。然后从结果中选取第一个值;如果没有,则使用默认选项no disk entered。只要确保你的空值真的是空值

谢谢,但是我得到了“Expression.Error:名称”IF“无法识别。确保拼写正确“仍在使用中…”谢谢。让我看看我能不能再努力一点。拉多是对的。您要求使用DAX,但正在尝试在不使用DAX的查询编辑器中使用它。谢谢。在您的帮助下,我正在努力解决一些概念错误。谢谢您,但是我没有识别出“Expression.Error:name”IF。确保拼写正确“仍在使用中…”谢谢。让我看看我能不能再努力一点。拉多是对的。您要求使用DAX,但正在尝试在不使用DAX的查询编辑器中使用它。谢谢。在您的帮助下,我正在努力解决一些概念错误。谢谢,但我得到了“Expression.Error:名称”SWITCH“未被识别。在“自定义列公式”字段中输入上述内容后,请确保拼写正确。谢谢,但我得到的是“表达式”。错误:无法识别名称“开关”。在“自定义列公式”字段中输入上述内容后,请确保拼写正确。我非常感谢您的帮助。我有很多东西要学,即使是关于如何提出正确的问题。我将学习M,祝你有一个美好的一天,先生!我真的很感谢你的帮助。我有很多东西要学,即使是关于如何提出正确的问题。我将学习M,祝你有一个美好的一天,先生!
if [PIDISC] = "" and [PI_DISC] = "" then "NO DISC ENTERED"
else if [PIDISC] = "" then [PI_DISC]
else if [PI_DISC] = "" then [PIDISC]
else "Else Condition"
New Column =
SWITCH (
    TRUE (),
    AND ( [PIDISC] = "null", [PI_DISC] = "null" ), "NO DISC ENTERED",
    [PIDISC] = "null", [PI_DISC],
    [PI_DISC] = "null", [PIDISC]
)
New Column =
SWITCH (
    TRUE (),
    AND ( ISBLANK([PIDISC]), ISBLANK([PI_DISC]) ) , "NO DISC ENTERED",
    ISBLANK ( [PIDISC] ), [PI_DISC],
    ISBLANK ( [PI_DISC] ), [PIDISC]
)
each List.First(List.RemoveNulls({[PIDISK], [PI_DISK]}), "No Disk Entered"))