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

How to conditionally transform text in a column in power query?

我正在 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}})

但是 returns 一个错误 "cannot apply field access to the type Text"。

如果我使用一个 AddColumn 来存储条件值,然后使用另一个 AddColumn 来存储新的附加值,我可以以一种非常迂回的方式获得所需的输出,但这似乎是一种非常矫枉过正的方法来处理对列的单一转换。 (我特别希望避免这种情况,因为我有大约 10 个左右的转换,如果有更简洁的编码方式,我不想添加和清理这么多列)

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

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