在excel中使用PowerQuery如何从列表中删除与模式匹配的项目。
我有一个列,其中的单元格包含名称和数字id。我只想留下一张名单。
LastName, FirstName;#123;#LastName, FirstName;#321;
这些数字都是唯一的。因此,如果我有regex,模式将类似于
/^#ddd+$/
我可以使用";"将单元格拆分为列表作为分离器。
= Text.Split([Consultant],";")
如果有一种方法可以删除每2个项目,直到最后,这也可以工作。不幸的是,似乎没有办法指定要匹配的模式。
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我如上所述将文本拆分为一个列表。这给了我一列清单。因此,我将列中的列表扩展为新行。我的计划是删除交替的行。但是,删除备用行需要一个结束号。我需要一个论点,直到没有更多的论点需要处理。
有很多方法。一种方法是使用List.Select
每隔一个项目进行选择
在您的示例中,这些项目的位置为偶数。
let
x = Text.Split([Column1],";#"),
y = List.Select(x, each Number.IsEven(List.PositionOf(x, _)))
in
y
编辑2022年11月
另一种方法是:
=List.Alternate(Text.Split([Column1],";#"),1,1,1)