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
在 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