Excel 如果记录组至少有一个条件值,则将数据导入Power Query和filter

Excel 如果记录组至少有一个条件值,则将数据导入Power Query和filter,excel,powerquery,Excel,Powerquery,我希望我能很好地解释我自己。我正在将电子表格从文件夹导入Power Query,但我希望筛选(删除)任何数据组(按名称列),其中该组至少有一个给定值的实例 例如,我有一个有两列的理论表。一个具有重复的名称,另一个具有分散的A、B或C值。我希望查询查找一组名称,然后查看该组中的任何记录在第二列中是否具有和A、B或C。如果找到,它将删除整个组,如果没有,则允许整个组通过 我不确定这对于Power Query来说是否太复杂,或者我是否需要在Excel之外执行此操作。如果是后者,那么等效的SQL语句是什

我希望我能很好地解释我自己。我正在将电子表格从文件夹导入Power Query,但我希望筛选(删除)任何数据组(按名称列),其中该组至少有一个给定值的实例

例如,我有一个有两列的理论表。一个具有重复的名称,另一个具有分散的A、B或C值。我希望查询查找一组名称,然后查看该组中的任何记录在第二列中是否具有和A、B或C。如果找到,它将删除整个组,如果没有,则允许整个组通过


我不确定这对于Power Query来说是否太复杂,或者我是否需要在Excel之外执行此操作。如果是后者,那么等效的SQL语句是什么(对于MS Access,因为我正在尽可能地保持基本的SQL语句)?

有大约500种方法可以做到这一点。一种简单的方法是过滤列2中的ABC,删除该列,然后从列1中删除重复项。这将为您提供一个要删除的组的唯一列表,只需将其与原始数据合并并删除这些行

样本:

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],

// all unique groups from Col1 that have a/b/c in Col2
#"Filtered Rows" = Table.SelectRows(Source, each ([Column2] = "a" or [Column2] = "b" or [Column2] = "c")),
#"Removed Columns"= Table.SelectColumns(#"Filtered Rows",{"Column1"})
#"Removed Duplicates" = Table.Distinct(#"Removed Columns"),

// merge that into original table and filter
#"Merged Queries" = Table.NestedJoin(Source,{"Column1"},#"Removed Duplicates",{"Column1"},"Table2",JoinKind.LeftOuter),
#"Expanded Table2" = Table.ExpandTableColumn(#"Merged Queries", "Table2", {"Column1"}, {"Column1.1"}),
#"Filtered Rows1" = Table.SelectRows(#"Expanded Table2", each ([Column1.1] <> null)),
#"Removed Columns1" = Table.RemoveColumns(#"Filtered Rows1",{"Column1.1"})
in #"Removed Columns1"
let Source=Excel.CurrentWorkbook(){[Name=“Table1”]}[Content],
//Col1中在Col2中具有a/b/c的所有唯一组
#“筛选行”=表格。选择行(源,每个行([Column2]=“a”或[Column2]=“b”或[Column2]=“c”),
#“删除的列”=表。选择列(#“筛选的行”,{“Column1”})
#“删除的重复项”=表.Distinct(#“删除的列”),
//将其合并到原始表中并进行筛选
#“合并查询”=表.NestedJoin(源代码,{“Column1”}、#“删除的重复项”、{“Column1”}、“表2”、JoinKind.LeftOuter),
#“Expanded Table2”=Table.ExpandTableColumn(#“合并查询”、“Table2”、{“Column1”}、{“Column1.1”}),
#“筛选行1”=表。选择行(#“扩展表2”,每个([Column1.1]null)),
#“Removed Columns1”=表.RemoveColumns(#“Filtered Rows1”,{“Column1.1”})
在#“已删除的列1”中