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 如果text.contain使用或函数,则M查询中的条件列_If Statement_Powerbi_Powerquery - Fatal编程技术网

If statement 如果text.contain使用或函数,则M查询中的条件列

If statement 如果text.contain使用或函数,则M查询中的条件列,if-statement,powerbi,powerquery,If Statement,Powerbi,Powerquery,我在powerquery中添加了一列,条件语句包含具有不同值的文本。我可以为每个条件添加每个短语,但我正在考虑使用OR函数以更有效的方式编写它 到目前为止,我有以下几点: = Table.AddColumn(#Changed Type", "Assigned Group", each if Text.Contains([Assigned to], "John") Then "Group 1" else if Text.Cont

我在powerquery中添加了一列,条件语句包含具有不同值的文本。我可以为每个条件添加每个短语,但我正在考虑使用OR函数以更有效的方式编写它

到目前为止,我有以下几点:

= Table.AddColumn(#Changed Type", "Assigned Group", each if Text.Contains([Assigned to], "John") Then "Group 1" else if Text.Contains([Assigned to], "johnny") Then "Group 1" else if Text.Contains([Assigned to], "jane") Then "Group 1" else if Text.Contains([Assigned to], "sean") Then "Group 1" else if Text.Contains([Assigned to], "Mary") Then "Group 2" else if Text.Contains([Assigned to], "Pete") Then "Group 2" else "Group 3")
如前所述,有没有一种方法可以在不使用上述长文本的情况下更有效地编写本文

不知怎的,我试着:

= Table.AddColumn(#Changed Type", "Assigned Group", each if Text.Contains(OR(([Assigned to], "John"), ([Assigned to], "johnny"), ([Assigned to], "jane"), ([Assigned to], "sean"))) Then "Group 1" else if Text.Contains(OR(([Assigned to], "Mary"), ([Assigned to], "Pete"))) Then "Group 2" else "Group 3")
上面说手术室没有被识别。我还尝试了文本之前的OR函数。如果包含短语,则它仍然不起作用


如何在excel或power query中输入OR函数。

首先,请记住:M是区分大小写的语言。所以,那么是不正确的语法。PQ中也没有功能,但有运算符

您可以使用以下代码:

  = Table.AddColumn(
    #"Changed Type",
    "Assigned Group",
    each 
      let
        fn = (list) =>
          List.AnyTrue(
            List.Transform(list, (x) => Text.Contains([Assigned to], x, Comparer.OrdinalIgnoreCase))
          )
      in
        if fn({"John", "Jane", "Sean"}) then
          "Group 1"
        else if fn({"Mary", "Pete"}) then
          "Group 2"
        else
          "Group 3"
  )

谢谢你提醒我区分大小写,我只是从另一台计算机上输入了整个代码,但没有意识到区分大小写。我会给代码一个尝试,让你知道。保持安全和健康谢谢你,这是有效的,只需要清理数据,使其更准确。