如何在Power查询的列中有条件地转换文本?

时间:2019-05-23 18:07:28

标签: powerbi powerquery m

我正在PowerBI中构建一个工作簿,并且如果满足特定条件,则需要对A列进行有条件的文本附加。具体来说,如果列A的结尾不是“ .html”,那么我想将文本“ .html”附加到该列。

数据示例如下:

URL                 | Visits
site.com/page1.html | 5
site.com/page2.html | 12
site.com/page3      | 15
site.com/page4.html | 8

所需的输出如下所示:

URL                 | Visits
site.com/page1.html | 5
site.com/page2.html | 12
site.com/page3.html | 15
site.com/page4.html | 8

我尝试使用以下代码:

   #"CurrentLine" = Table.TransformColumns(#"PreviousLine", {{"URL", each if Text.EndsWith([URL],".html") = false then _ & ".html" else "URL", type text}})

但是返回错误“无法对文本类型应用字段访问”。

如果我使用AddColumn存储标准值,然后使用另一个AddColumn存储新的附加值,则可以以一种非常about回的方式获得所需的输出,但是这似乎是一种过分的方法,无法完成单个转换到一列。 (我特别希望避免这种情况,因为我有大约10个左右的转换,并且如果有更简洁的编码方式,也不想添加和清除那么多列)

1 个答案:

答案 0 :(得分:1)

您不希望[URL]内的Text.EndWith。试试这个:

= Table.TransformColumns(#"PreviousLine",
      {{"URL", each if Text.EndsWith(_, ".html") then _ else _ & ".html", type text}}
  )