Excel中,求A列不重复且B列不重复,筛选出C列的最大值。 5

原始数据:姓名科目成绩张三语文70张三数学48张三数学60李四语文58李四语文70李四数学88王二语文66王二数学74希望最后筛选出来的结果是:(每个人每个科目只有唯一成... 原始数据:

姓名 科目 成绩

张三 语文 70
张三 数学 48
张三 数学 60
李四 语文 58
李四 语文 70
李四 数学 88
王二 语文 66
王二 数学 74

希望最后筛选出来的结果是:
(每个人每个科目只有唯一成绩,成绩为重复成绩的最大值)
姓名 科目 成绩

张三 语文 70
张三 数学 60
李四 语文 70
李四 数学 88
王二 语文 66
王二 数学 74
这个数据一共有100个姓名,50多个科目,每人每科的重复成绩有多有少(有的重复了8次),所以样本量大概有1W个,谢谢大家。
展开
 我来答
四面生风
2013-07-03 · TA获得超过960个赞
知道小有建树答主
回答量:669
采纳率:0%
帮助的人:543万
展开全部

鉴于数据量大,尽量避免使用数组公式。

如果同一人、同一科目的数据是在相连的几行,公式就简单。

例如格式如下:

       A        B       C     D    E     F       G       H

1   姓名   科目  成绩              姓名   科目   成绩

2   张三   语文   70     1    


A-C列为原数据,D列为辅助列

D2=IF(AND(A2=A1,B2=B1),D1,D1+1)


F-H列为生成后的数据

F2=IF((ROW()-1)>MAX($D:$D),"",INDEX(A:A,MATCH(ROW()-1,$D:$D,)))

G2=IF((ROW()-1)>MAX($D:$D),"",INDEX(B:B,MATCH(ROW()-1,$D:$D,)))

H2=IF(F2="",,MAX(OFFSET(C$1,MATCH(ROW()-1,D:D,)-1,,COUNTIF(D:D,ROW()-1))))


将D2:H2的公式向下拉即可。


如果同一人、同一科目的数据不是相连,公式就要复杂点。

如果是后面的情况你再找我吧,公式是可以解决的。

追问
数据不是相连的,谢谢你的回答~
追答

为避免使用数组公式,增加四个辅助列,例如格式如下:

      A       B       C            D         E   F     G       H       I         J

1  姓名  科目  成绩                                          姓名  科目  成绩

2  张三  语文   70     张三_语文   1  1070


A-C列为原数据,D-G列为辅助列,H-J列为生成后的数据

其中,D、E列用于去重复

D2=A2&"_"&B2

E2=IF(COUNTIF(D$2:D2,D2)=1,ABS(E1)+1,-ABS(E1))

将D2:E2公式向下拉


然后

H2=IF(ROW()-1<=MAX($E:$E),INDEX(A:A,MATCH(ROW()-1,$E:$E,)),"")

I2=IF(ROW()-1<=MAX($E:$E),INDEX(B:B,MATCH(ROW()-1,$E:$E,)),"")

这样,H:I的数据就是不重复的了


然后求最大值,如果编个数组公式自然简单,但数据量大的时候数组公式运算慢

这里使用辅助列以提高运算速度

F2=IF(D2="","",--(INDEX(E:E,MATCH(D2,D:D,))&TEXT(C2,"000")))

G2=RANK(F2,F:F)

然后

J2=IF(H2="",,INDEX(C:C,MATCH(COUNTIF(F:F,">"&INDEX(E:E,MATCH(H2&"_"&I2,D:D,))&"999")+1,G:G,)))


另外,H:I列的数据,还可能涉及排序的问题,要视乎你的实际情况

因为,一般学生有个学号的,而不是直接按姓名排序的

科目最好也有个代码而方便排序。

了尘和尚
2013-07-02 · 幻人心识本来无,罪福皆空无所住。
了尘和尚
采纳数:4256 获赞数:20072

向TA提问 私信TA
展开全部
D1中输入:
=IF(SUMPRODUCT((A$2:A$8=A2)*(B$2:B$8=B2)*(C$2:C$8>C2)),"删除","保留") 下拉
D列中作筛选,选出保留的行就可以了。
追问
只有第一个人的可以,后面的全是保留。
这个数据一共有100个姓名,50多个科目,每人每科的重复成绩有多有少(有的重复了8次),所以样本量大概有1W个,希望你能够帮我解决,谢谢!
追答
数据太多,用公式处理就不合适了,可以考虑VBA,请人写段代码吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不想起名字了99
2013-07-03 · TA获得超过1694个赞
知道大有可为答主
回答量:2708
采纳率:76%
帮助的人:690万
展开全部
个人建议直接用数据透表实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式