Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 5763|回复: 31

[已解决]请按要求修改公式

[复制链接]
发表于 2013-7-12 21:35 | 显示全部楼层 |阅读模式
本帖最后由 武林长风 于 2013-7-12 21:38 编辑

数组公式:=SUM(LARGE(E1:E37,ROW(1:N))),计算37人的班级中前N个学生的总分,因各班的学生数不一样,修改数组公式麻烦,我想弄个适合所有班级的公式,如都按每班70人设计公式,但是当学生少时会把没有成绩的也算进去,不知在LARGE(E1:E37或LARGE(E1:E70之间添加什么函数不计算没有分数的单元格。大致就是这么个意思。

最佳答案
2013-7-13 07:45
  1. =SUM(LARGE(INDIRECT("R"&ROW()-1&"C"&COLUMN(),):INDIRECT("R"&ROW()-71&"C"&COLUMN(),),ROW(INDIRECT("1:"&INT(LOOKUP(9^9,E1:INDIRECT("R"&ROW()-1&"C"&COLUMN(),),$A$1:$A$2)*0.9)))))
复制代码
三件结束。
{:112:}

这莫非就是传说中的懒人心法。。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-7-12 21:48 | 显示全部楼层
  1. =SUM(LARGE(INDIRECT("E1:E"&COUNT(E:E)),ROW(1:N)))
复制代码
N代表前多少
回复

使用道具 举报

 楼主| 发表于 2013-7-12 21:52 | 显示全部楼层
sliang28 发表于 2013-7-12 21:48
N代表前多少

假设人数为70人,改为这样的数组行吗:=SUM(LARGE(INDIRECT("E1:E70"&COUNT(E1:E70)),ROW(1:N))),N是多少暂时不用管它。
回复

使用道具 举报

发表于 2013-7-12 21:53 | 显示全部楼层
我觉得可以用SUMIF函数
  1. =SUMIF(E1:E70,">="&LARGE(E1:E70,N))
复制代码
N代表前几
回复

使用道具 举报

 楼主| 发表于 2013-7-12 21:55 | 显示全部楼层
雨后的风 发表于 2013-7-12 21:53
我觉得可以用SUMIF函数N代表前几

请用SUM公式
回复

使用道具 举报

发表于 2013-7-12 21:58 | 显示全部楼层
武林长风 发表于 2013-7-12 21:55
请用SUM公式

必须用sum数组公式?换成SUMIF普通公式,结果一样的
回复

使用道具 举报

发表于 2013-7-12 22:00 | 显示全部楼层
那个70不能要,公式的意思就是E有多少行连续的数据,就引用到多少行。动态的,不管是多少个数据都可以求。不过N不能大于数据的个数
回复

使用道具 举报

 楼主| 发表于 2013-7-12 22:06 | 显示全部楼层
sliang28 发表于 2013-7-12 22:00
那个70不能要,公式的意思就是E有多少行连续的数据,就引用到多少行。动态的,不管是多少个数据都可以求。不 ...

因E列还有别的班级的成绩,再有就是E71是统计总分的单元格
回复

使用道具 举报

 楼主| 发表于 2013-7-12 22:09 | 显示全部楼层
雨后的风 发表于 2013-7-12 21:58
必须用sum数组公式?换成SUMIF普通公式,结果一样的


回复

使用道具 举报

发表于 2013-7-12 22:10 | 显示全部楼层
这样的话上传个附件看看有其它解法没有?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-15 12:05 , Processed in 0.340641 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表