You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何针对列D每个唯一值保留对应列F的最值并删除其余重复项?

解决思路

针对列D的每个唯一值,保留对应列F的最大、最小值行,以下是几种实用方案:

一、Excel 操作(无需编程)

方法1:公式筛选

  1. 在数据旁新增一列(比如G列),输入公式:
    =OR(F1=MINIFS(F:F,D:D,D1),F1=MAXIFS(F:F,D:D,D1))
  2. 下拉填充公式到所有行,公式返回TRUE的行就是需要保留的(F为对应D的最大/最小值)
  3. 筛选G列为TRUE的行,复制粘贴到新工作表即可

方法2:Power Query(适合大量数据)

  1. 选中数据区域,点击「数据」选项卡 → 「从表格/区域」(Excel 2016及以上版本支持)
  2. 在Power Query编辑器中:
    • 选中列D,点击「转换」→「分组依据」
    • 设置分组列为D,添加两个聚合操作:
      • 新列名:F最小值,操作选「最小值」,目标列选F
      • 新列名:F最大值,操作选「最大值」,目标列选F
    • 点击确定后,得到每个D对应的F极值;若需要保留原数据的其他列,可继续:
      • 回到原数据查询,点击「合并查询」,以D为匹配键,和分组后的表合并
      • 展开合并列中的F最小值和F最大值,然后筛选原表的F等于最小值或最大值的行
  3. 点击「关闭并上载」,将处理后的数据导出到Excel

二、Python Pandas 编程方案(适合大数据量或自动化处理)

import pandas as pd

# 读取数据(替换为你的文件路径,支持Excel/CSV等格式)
df = pd.read_excel("你的数据文件.xlsx")

# 分组计算每个D对应的F的最大、最小值
grouped_stats = df.groupby('D')['F'].agg(['min', 'max']).reset_index()

# 将统计结果转换为「D-F」的配对格式,每个D对应两个F值
matched_pairs = grouped_stats.melt(id_vars='D', value_name='F').drop(columns='variable')

# 合并原数据,只保留符合条件的行
result_df = pd.merge(df, matched_pairs, on=['D', 'F'])

# 保存处理后的数据
result_df.to_excel("处理后的数据.xlsx", index=False)

内容的提问来源于stack exchange,提问作者Dice 0ne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:25:19