Excel筛选需求:提取各应用对应最低CAT值的唯一记录
Excel筛选需求:提取各应用对应最低CAT值的唯一记录
看起来你要实现的是按应用(app_id/app_sc)分组,仅保留每组中CAT值最小的那条记录,这个需求在Excel里有两种非常实用的实现方式,我分别给你拆解步骤:
方法一:Power Query(推荐,适合大量数据,可复用)
这个方法操作一次后,后续数据更新只需要刷新即可,效率很高:
- 选中你的整个数据区域(包含表头),点击顶部菜单栏的「数据」选项卡 → 选择「从表格/区域」(旧版Excel可能在「获取和转换数据」组里找「自表格/区域」),在弹出的弹窗里确认「我的表格有标题」已勾选,进入Power Query编辑器。
- 先给数据排序:选中「CAT」列,点击编辑器顶部「开始」选项卡 → 「排序」→ 「升序排序」,这样每个应用的最小CAT记录会自动排在该组的最前面。
- 然后删除重复项:选中「app_id」列(因为app_id是每个应用的唯一标识,也可以同时选中app_id和app_sc确保完全匹配),点击「开始」→ 「删除行」→ 「删除重复项」,在弹窗里确认要依据的列,完成后每个应用只会保留第一行(也就是CAT最小的那条记录)。
- 最后点击「开始」→ 「关闭并上载」,选择上载到新的工作表,就能得到你想要的结果了。
方法二:公式+辅助列(适合少量数据,快速手动处理)
如果你的数据量不大,用辅助列筛选也很方便:
- 在数据右侧插入一个辅助列(比如D列),表头命名为「是否保留」。
- 在D2单元格输入公式:
公式逻辑:判断当前行的CAT值,是否等于该app_id对应的所有CAT值中的最小值,是则返回=MINIFS($C:$C,$A:$A,$A2)=$C2TRUE,否则返回FALSE。 - 按住D2单元格右下角的填充柄,下拉复制公式到所有数据行。
- 选中整个数据区域,点击「数据」选项卡 → 「筛选」,然后在D列的筛选下拉框里只勾选「TRUE」,筛选出来的就是你需要的记录,复制粘贴到新区域即可使用。
两种方法都能完美匹配你给出的示例数据,最终得到的结果和你预期的完全一致~
备注:内容来源于stack exchange,提问作者Patch
相关产品推荐
相关产品推荐

