Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 Power Query M-无法将值null转换为逻辑类型_Powerbi_Powerquery_M - Fatal编程技术网

Powerbi Power Query M-无法将值null转换为逻辑类型

Powerbi Power Query M-无法将值null转换为逻辑类型,powerbi,powerquery,m,Powerbi,Powerquery,M,在Power BI中,我有一个M查询,用于测试列中的值是否等于null 当我为[Sale.Revenue]null添加语句时,我得到了一个错误,但是对于[UserRole.Name]=null它工作正常。只需删除语句并将其添加回即可进行测试 我们无法将值null转换为逻辑类型。 这似乎应该是可行的,但就是想不出来 add_user_role_group = Table.AddColumn( join_expand_sale, "UserRole.Group1", ea

在Power BI中,我有一个M查询,用于测试列中的值是否等于
null

当我为
[Sale.Revenue]null添加语句时,我得到了一个错误,但是对于
[UserRole.Name]=null它工作正常。只需删除语句并将其添加回即可进行测试

我们无法将值null转换为逻辑类型。

这似乎应该是可行的,但就是想不出来

add_user_role_group = Table.AddColumn(
    join_expand_sale, 
    "UserRole.Group1", 
    each (
      if [UserRole.Name] = null and
         [Sale.Revenue] <> null then
        "Group1"
      else if Text.Contains([UserRole.Name], "Manager") then
        "Group2"
      else
        "Undefined"
    )
  )
add\u user\u role\u group=Table.AddColumn(
加入并扩大销售,
“UserRole.Group1”,
各(
如果[UserRole.Name]=null,则
[Sale.Revenue]则为空
“第一组”
否则,如果Text.Contains([UserRole.Name],“Manager”)则
“第2组”
其他的
“未定义”
)
)

我相信这是非常明显的:/谢谢您的想法。

您的一行的UserRole.Name和Sale.Revenue都为空值。您需要显式地检查它,然后将其添加到“Undefined”组


第一个条件失败,因为Sale.Revenue为空。第二个条件调用Text.Contains,当[UserRole.Name]为null时返回null(Text.Contains返回可为null的逻辑值)。null不是真的或假的,所以您得到了错误。

经过这样的一段旅程,我终于找到了Text.Length

您可以这样解决您的问题:

if Text.Length([UserRole.Name]) = 0 and
         Text.Length([Sale.Revenue]) > 0 then
我希望我帮助过你。
参考资料:

谢谢,伙计。我仔细考虑了您的答案,首先测试了UserRole.Name=null,在其中启动了一个新的if语句,然后在最后一个else语句之后处理null收入。谢谢你的洞察力。