EXCEL函数高手请进

我有一个学生成绩工作表,需要在不改变原表的情况下统计出各科总分从大到小人数的80%的学生的语文成绩总分。请高手解答。如:各科总分在J列,有50个人,就是从J列中(乱序的,... 我有一个学生成绩工作表,需要在不改变原表的情况下统计出各科总分从大到小人数的80%的学生的语文成绩总分。请高手解答。如:各科总分在J列,有50个人,就是从J列中(乱序的,不要排序)各科总分找出50*80%=40个人,最大分数的40个人,语文分数在C列,统计J列各科总分前40名人的语文总分。
谢谢txh2lan,我在里面也找了,也学习了,可是没有收获。
谢谢chation ,你的公式比较接近,可是大于第40个大数,那不就选了39个,而且重复的数据也不行
我写了一个望更正=SUM(OFFSET("J"&MATCH(LARGE(J3:J102,ROW(INDIRECT("1:"&ROUND(COUNT(J3:J102)*0.8,0))),J3:J102,0)+2),0,-7))
谢谢chation ,我也改了=,可是重复的问题怎样解决?
另外区域J3:J102和C3:C102是个大的范围,不一定都有数据,是个动态的区域。也就是说这是100个单元格,可能只有前面60个单元格有数据,也有可能是其他个数据。
展开
 我来答
LWSHH
2010-08-02 · TA获得超过5078个赞
知道大有可为答主
回答量:2884
采纳率:100%
帮助的人:1131万
展开全部
=SUMPRODUCT(--RIGHT(LARGE(J3:J102*10^6+C3:C102,ROW(INDIRECT("1:"&ROUND(COUNT(J3:J102)*0.8,0)))),3))
如果要把班级条件加上,比如班级在B列,可把公式改为
=SUMPRODUCT(--RIGHT(LARGE((B3:B102="一班")*(J3:J102*10^6+C3:C102),ROW(INDIRECT("1:"&ROUND(COUNT(J3:J102)*0.8,0)))),3))这是求一班总分前80%的语文分数合计.
森林浴1
2010-08-01 · TA获得超过2311个赞
知道大有可为答主
回答量:2104
采纳率:0%
帮助的人:1331万
展开全部
如在空白列如K列输入公式如K2
=IF(J2>=PERCENTILE(IF($J$2:$J$51>0,$J$2:$J$51),0.2),A2,""),下拉,就在K列提出了80%即40人最大的数,并显示A列了姓名,否则为空白
计算总分公式
=SUMPRODUCT((K2:K51<>"")*(J2:J51))
你的说明中的公式,就是并列或者相同分数的就不能解决,因为LARGE函数不能将相同的数列出来。试试我的公式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2010-08-01 · TA获得超过8613个赞
知道大有可为答主
回答量:3242
采纳率:66%
帮助的人:2802万
展开全部
解决分数重复问题:

简化模型,以数据在1到10行内
加以辅助列 K 列,在K1输入公式,并下拉复制到数据尾行:
=RANK(J1,$J$1:$J$10,1)+ROUND((COUNTIF($J$1:$J$10,J1)-1)/COUNTIF($J$1:$J1,J1)/COUNT($J$1:$J$10),3)

会在K列升序排出总分的名次,同分数的以行数靠前的排在前面,不会有相同的值

然后就可以按K列的大小值进行统计:

=SUMPRODUCT(--(K1:K10>=LARGE(K1:K10,COUNT(K1:K10)*0.8))*(C1:C10))

----------模型实例------------
C列 J列 K列(辅助列)
1 56 2.1
2 88 9
3 56 2.05
4 58 4
5 68 6
6 52 1
7 76 7
8 83 8
9 98 10
10 66 5
------------------
=SUMPRODUCT(--(K1:K10>=LARGE(K1:K10,COUNT(K1:K10)*0.8))*(C1:C10))
得出结果为46
=SUM(C1:C10)-C6-C3
得出结果也为46
--------------
其他问题,Hi我
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友24ef169fc
2010-08-01 · TA获得超过9079个赞
知道大有可为答主
回答量:2.2万
采纳率:64%
帮助的人:4332万
展开全部
把问题作为内容、样表(03版,把现状和目标效果表示出来)作为附件发来看下 yqch134@163.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
山桑弓
2010-08-01 · TA获得超过1.2万个赞
知道大有可为答主
回答量:7793
采纳率:66%
帮助的人:2750万
展开全部
假设你总分的数据在J2:J51,语文在G2:G51,要计算总分在前40名的人的语文成绩,而且如果正好在39-42名之类的有同分的情况,也要只取40名,公式如下
=SUM(SUBTOTAL(9,(OFFSET(C1,MATCH(LARGE(G2:G51+1/ROW(1:50),ROW(1:40)),G2:G51+1/ROW(1:50),),,1))))
同时按下CTRL+SHIFT+ENTER输入数组公式,略作解释,G2:G51+1/ROW(1:50)用来将总分加上一个不重复的小数序列,去除同分时的判断难题,LARGE(G2:G51+1/ROW(1:50),ROW(1:40))的意思是刚才的那个处理过的数据中取出前40名,MATCH(LARGE(G2:G51+1/ROW(1:50),ROW(1:40)),G2:G51+1/ROW(1:50),)是判断刚才前40名的位置,用来在OFFSET中返回前40名所在的行号,OFFSET再用这个行号在C列返回一个这些行号组成的序列,就是前40名的语文成绩,SUBTOTAL是处理OFFSET这种情况下的必用函数,直接用SUM是不行的,外面再套用SUM求出总和,略作解释,希望你能弄明白。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dr_zxp
2010-08-02 · TA获得超过861个赞
知道小有建树答主
回答量:765
采纳率:100%
帮助的人:844万
展开全部
不用辅助列,重复只取排在前面的,假设数据从第二行开始

=SUM((J2:J100-ROW(J2:J100)/COUNT(J:J)>=LARGE(J2:J100-ROW(J2:J100)/COUNT(J:J),COUNT(J:J)*0.8))*C2:C100)
ctrl+shift+enter结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式