PowerQuery 从匹配模式的列表中删除项目

PowerQuery remove items from a list matching a pattern

在 excel 中使用 PowerQuery 如何从列表中删除与模式匹配的项目。

我有一列包含包含名称和数字 ID 的单元格。我只想留下一个名字列表。

LastName, FirstName;#123;#LastName, FirstName;#321;

这些数字都是独一无二的。因此,如果我有正则表达式,模式将类似于

/^\#ddd+$/

我可以使用“;”将单元格拆分成一个列表作为分隔符。

= Text.Split([Consultant],";")

如果有一种方法可以删除每第二个项目直到结束,那也可以。不幸的是,似乎无法指定要匹配的模式。

List.RemoveItems({1, 2, 3, 4, 2, 5, 5}, {2, 4, 6})

这太棒了,但是我必须定义所有存在的数字模式。所以这失败了。

List.RemoveMatchingItems(Text.Split([Consultant], ";#"), {1,2,3,4,5,6,7,8,9})

方法2 我将文本拆分为上面的列表。这给了我一列列表。所以我将列中的列表扩展到新行。我的计划是删除交替行。但是,删除交替行需要结束编号。我需要一个论据,直到没有更多的论据需要处理。

方法有很多种。 一种方法是 select 每隔一个项目 List.Select

在您的示例中,这些将是位置为偶数的项目。

let 
  x = Text.Split([Column1],";#"),
  y = List.Select(x, each Number.IsEven(List.PositionOf(x, _)))
in 
 y