公式解析:
A、E2=$A$2:$A$14,判断是否为“甲”,如果是,则返回TRUE,如果不是则返回FASLE,形成{TURE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}的内存数组;(暂时称为数组1)
B、$C$2:$C$14形成{60;70;80;70;70;60;85;85;85;80;70;70;60}的内存数组;(暂时称为数组2)
C、数组1和数组2相乘形成{60;70;80;0;0;0;0;0;0;0;0;0;0}的新数组;(暂时称为数组3)
D、用LARGE函数将其中的最大值提取出来,就得到了成绩的最大值。
如图3所示。
(图3)
3、在D2单元格中输入=A2&C2,并向下填充;同理,在G2单元格中输入=E2&F2,并向下填充,得到如图4所示的效果。
(图4)
4、选择D2:D14单元格区域,然后单击【开始】选项卡→选择【条件格式】→【新建规则】→【使用公式确定要设置格式的单元】→输入如下公式:=MATCH(D2,$G$2:$G$6,0)并设置成红色字体,如图5所示。
(图5)
5、变成红色字体的所在的行就是同名最高分数所在的行,在D1输入“辅助列”三个字,然后经过数据筛选,就能提出相应的数据。如图6所示
(图6)
6、然后将筛选出来的结果标识为红色,再通过筛选对不符合期望的数字全部变成3,然后再除去其他辅助数列,就得到了如期的效果,如图7所示。
(图7)
方法二:排序+VLOOKUP函数法
这个办法不需要用到数组公式,比较简单,只要用排序功能和VLOOKUP函数在相同姓名中查找到第一个的特性进行处理。
1、和方法一一样,删除重复项;
2、对A1:C14单元格区域进行按分数降序排列;
3、然后在F2单元格中输入=VLOOKUP(E2,$A$2:$C$14,3,FALSE),向下填充之后就能得到相同名字的最高分;如图8所示。
(图8)
4、再按照方法一的步骤就可以实现了。(注意:可能会遇到姓名顺序不能变的要求,建议可以建立一个自然序列的辅助列,在标识后,可以恢复姓名排序)
●