PQ:如果组中只有一条记录有特定的值,则删除该组的记录。

问题描述 投票:0回答:1

我有2列。(请看下面的链接图片)

第1栏为项目ID

第2栏是仓库ID

我想删除某组Col1(物品ID)的所有记录,如果该组中只有1条记录在Col2(仓库ID)中的值为20或50的话。Excel输入和Power Query输出

powerquery
1个回答
0
投票
let
Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"ItemId", type text}, {"WarehouseID ", Int64.Type}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"ItemId"}, {{"AllRows", each _, type table [ItemId=text, #"WarehouseID "=number]}}),
#"Added Index" = Table.AddIndexColumn(#"Grouped Rows", "Index", 1, 1),
#"Expanded AllRows" = Table.ExpandTableColumn(#"Added Index", "AllRows", {"WarehouseID "}, {"WarehouseID "}),
#"Added Conditional Column" = Table.AddColumn(#"Expanded AllRows", "Find ItemId", each if [#"WarehouseID "] = 20 then [ItemId] else if [#"WarehouseID "] = 50 then [ItemId] else null),
#"Merged Queries" = Table.NestedJoin(#"Added Conditional Column", {"ItemId"}, #"Find ItemId", {"Column1"}, "Find ItemId.1", JoinKind.LeftAnti),
#"Removed Other Columns" = Table.SelectColumns(#"Merged Queries",{"ItemId", "WarehouseID ", "Index"})

在#"删除其他列"

let
Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"ItemId", type text}, {"WarehouseID ", Int64.Type}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"ItemId"}, {{"AllRows", each _, type table [ItemId=text, #"WarehouseID "=number]}}),
#"Added Index" = Table.AddIndexColumn(#"Grouped Rows", "Index", 1, 1),
#"Expanded AllRows" = Table.ExpandTableColumn(#"Added Index", "AllRows", {"WarehouseID "}, {"WarehouseID "}),
#"Added Conditional Column" = Table.AddColumn(#"Expanded AllRows", "Find ItemId", each if [#"WarehouseID "] = 20 then [ItemId] else if [#"WarehouseID "] = 50 then [ItemId] else null),
#"Find ItemId1" = #"Added Conditional Column"[Find ItemId],
#"Removed Duplicates" = List.Distinct(#"Find ItemId1"),
#"Converted to Table" = Table.FromList(#"Removed Duplicates", Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Filtered Rows" = Table.SelectRows(#"Converted to Table", each ([Column1] <> null))

在#"过滤行"

© www.soinside.com 2019 - 2024. All rights reserved.