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

Power Query M - We cannot convert the value null to type Logical

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

当我为 [Sale.Revenue] <> null 添加语句时出现错误,但是对于 [UserRole.Name] = null 它工作正常。仅通过删除语句并将其添加回来进行测试。

We cannot convert the value null to type Logical.

这似乎应该可行,但就是想不通。

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"
    )
  )

我相信这是显而易见的:/感谢您对此的看法。

您的某一行的 UserRole.Name 和 Sale.Revenue 均为空值。您需要明确检查,然后将其添加到 "Undefined" 组。

发生的事情是第一个条件失败,因为 Sale.Revenue 为空。第二个条件调用 Text.Contains,当 [UserRole.Name] 为 null 时 returns null(Text.Contains returns 一个可为 null 的逻辑值)。 null 不是 true 或 false,所以你得到错误。

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

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

if Text.Length([UserRole.Name]) = 0 and
         Text.Length([Sale.Revenue]) > 0 then

希望对你有所帮助。 参考:Power Query M - Text.Length