Excel 中的复杂(?)过滤,仅从列表中选择“最高”评级

Excel 中的复杂(?)过滤,仅从列表中选择“最高”评级

我确信这很简单,但我无法解决。

我有一长串的申请,分类为 0 - 2。

app_id  app_sc          CAT
1001    Application 1   CAT 0
1001    Application 1   CAT 1
1002    Application 2   CAT 2
1003    Application 3   CAT 0
1004    Application 4   CAT 0
1005    Application 5   CAT 0
1005    Application 5   CAT 1
1005    Application 5   CAT 2
1006    Application 6   CAT 1
1006    Application 6   CAT 2
1007    Application 7   CAT 1
1007    Application 7   CAT 2
1008    Application 8   CAT 1
1009    Application 9   CAT 2

我想创建一个新的列表,通过过滤仅选择具有最低 CAT 值的项目,如果有重复的应用程序名称,则应丢弃具有较高 CAT 值的项目。

上表结果如下:

1001    Application 1   CAT 0
1002    Application 2   CAT 2
1003    Application 3   CAT 0
1004    Application 4   CAT 0
1005    Application 5   CAT 0
1006    Application 6   CAT 1
1007    Application 7   CAT 1
1008    Application 8   CAT 1
1009    Application 9   CAT 2

答案1

据我了解,从你的 OP 来看,你可以使用以下方法之一来实现所需的输出:

在此处输入图片描述


• 使用 Excel 公式-->适用于MS365Beta 频道用户。

=LET(α, GROUPBY(A2:B15,TEXTAFTER(C2:C15," ")/1,MIN,0,0), HSTACK(TAKE(α,,2),"Cat "&DROP(α,,2)))

• 使用POWER QUERY适用于Excel 2010+Windows 和 MAC 及以上版本的系统。

  • 首先将源范围转换为表格并进行相应命名,在此示例中,我将其命名为Table_1

  • Data接下来,从Tab --> Get & Transform Data--> Get Data--> From Other Sources-->打开一个空白查询Blank Query

  • 上面的命令可以Power Query打开窗口,现在从HomeTab --> Advanced Editor--> 删除您看到的任何内容并粘贴以下内容M-Code,然后按Done

let
    Source = Excel.CurrentWorkbook(){[Name="Table_1"]}[Content],
    #"Grouped Rows" = Table.Group(Source, {"app_id", "app_sc"}, {{"ALL", each List.Min([CAT]), type text}})
in
    #"Grouped Rows"

在此处输入图片描述


  • 最后,将其导回Excel--> 单击Close & LoadClose & Load To--> 第一个单击的将创建一个New Sheet具有所需输出的,而后者将提示一个窗口询问您将结果放在何处。

在此处输入图片描述


答案2

按 CAT 排序,挑选您想要的候选人,如有必要,按 app_id 重新排序以恢复原始顺序。您可以执行类似操作来删除重复的申请人。

  • 突出显示所有列。
  • 从顶部的选项卡中选择“数据”,然后单击“过滤器”图标。
  • 现在,每个列标题(第 1 行)都有一个下拉菜单,可让您对其内容进行排序和/或选择,并且所有其他列将保持同步。

相关内容