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