首页 > 解决方案 > 使用 index + Match 在给定条件下获取值

问题描述

我有一个表(表 1),其中包含学生姓名和他们不同科目的平均分数。我想获取特定科目得分最高的学生的姓名。

我能够使用MAX(IF(Table1[Subject]=F5,Table1[Average Score])). 问题是,当我尝试使用索引获取学生=INDEX(Table1, MATCH(MAX(IF(Table1[Subject]=F5,Table1[Average Score])), Table1[Average Score], 0), 1)的姓名时,我得到了另一个分数相同但科目不同的学生的姓名。

如何限制结果,以便获得与该主题对应的学生姓名?

在此处输入图像描述

在上面的快照中,我打算让 Maxim Sunny(在单元格 F7 中)用于数学(单元格 F5),但我得到了 Timothy Jovelyn。

标签: excel

解决方案


您可以使用以下数组公式:

=INDEX(Table1, MATCH(MAX(Table1[Score]*(Table1[Subject]=F5)),(Table1[Score])*(Table1[Subject]=F5), 0), 1)

ctrl+ shift+确认编辑后的数组公式enter

在此处输入图像描述

编辑:

找到Name最小值的公式Score

=INDEX(Table1,MATCH(AGGREGATE(15,6,Table1[Score]/(Table1[Subject]=F5),1),(Table1[Score])*(Table1[Subject]=F5),0),1)

推荐阅读