You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

提取对应唯一单元格值且C列为最大值的行

嘿,我来帮你搞定这个需求!根据你描述的——要提取A列唯一值B、D、F各自对应C列最大值所在的完整行,这里给你几个不同工具的实用解决方案:

方法1:Excel公式实现(适合Excel用户)

假设你的数据在A:C列,第一行是表头:

  • 先在E列手动列出需要筛选的目标值:E2=B,E3=D,E4=F
  • 在F2单元格输入数组公式(输入完成后按Ctrl+Shift+Enter触发,Excel 365可直接回车):
    =INDEX(A:A,MATCH(1,(A:A=E2)*(C:C=MAX(IF(A:A=E2,C:C))),0))
    
  • 把F2的公式横向拖拽到G2、H2,再纵向拖拽到E4对应的行,就能得到每个目标值对应C列最大值的完整行数据。

如果是Excel 365及以上版本,也可以用更简洁的动态数组公式直接生成结果:

=LET(
    target_vals, {"B","D","F"},
    filtered, FILTER(A:C,ISNUMBER(MATCH(A:A,target_vals,0))),
    max_rows, XLOOKUP(target_vals, filtered[A], filtered, "",0,1),
    max_rows
)
方法2:Power Query实现(适合批量处理或复杂数据)

Power Query是Excel里的高效数据处理工具,步骤如下:

  1. 选中你的数据区域,点击「数据」选项卡 →「从表格/范围」,将数据导入Power Query编辑器
  2. 点击「开始」→「分组依据」,设置分组规则:
    • 分组依据:选择A列(比如列名为“类别”)
    • 新列名:输入“最大C值”,操作选「最大值」,列选择C列(比如列名为“数值”)
  3. 点击「开始」→「合并查询」→「合并查询作为新查询」,将原数据表和分组后的表进行合并,匹配条件设为「A列」和「最大C值对应原表的C列」
  4. 展开合并后的列,删除冗余列,最后筛选A列为B、D、F的行,点击「关闭并上载」就能把结果导出到Excel表格里。
方法3:Python Pandas实现(适合编程或大数据处理)

如果你习惯用Python处理数据,用Pandas可以快速实现:

import pandas as pd

# 读取你的数据(这里假设数据存在Excel文件里,也可以直接构造DataFrame)
df = pd.read_excel("your_data_file.xlsx")

# 第一步:筛选出A列是B、D、F的行
target_df = df[df["A"].isin(["B", "D", "F"])]

# 第二步:找出每个A值对应的C列最大值所在的行
result_df = target_df.loc[target_df.groupby("A")["C"].idxmax()]

# 查看结果并保存
print(result_df)
result_df.to_excel("final_result.xlsx", index=False)

内容的提问来源于stack exchange,提问作者iHateBugs

火山引擎 最新活动