ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: gdliyy

[Excel 函数与公式] [第9期]项目测试累计评分问题[已总结]

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-3-2 19:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
免强做成的不知道行不行?

Gdliyy注:
确实比较勉强,但是只考虑了2个名次并列的情况,因此不能算正确,请再好好考虑一下,谢谢您的参与。

[此贴子已经被gdliyy于2006-3-22 22:37:55编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

TA的精华主题

TA的得分主题

发表于 2006-3-3 00:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

直接求

为了简化公式,直接引用了项目个数3和人员数6


[em04]

Gdliyy注:
总体思路比较清晰,根据定义的区域分别求出排名,再根据得分在各个项目评分的个数进行
平均,从而得出结果。
此解使用了Countif\Subtotal的三维引用来实现,但是Num排名完全可以用Rank()来代替,公式会简化一些。另外,既然想到了Subtotal,不如直接用Subtotal(1,...)来解,就没有必要先求和再求平均了:)

结果正确,评分3分。

[此贴子已经被gdliyy于2006-3-22 23:00:45编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

TA的精华主题

TA的得分主题

发表于 2006-3-3 10:01 | 显示全部楼层
暂时想不出别的了:

Gdliyy注:
总体思路很清晰,根据定义的区域分别求出排名,再根据得分在各个项目评分的个数进行
平均,从而得出结果。
此解属常规解法,按各区间分别计算并汇总。如果结合三维引用,结果就出来了。

[此贴子已经被gdliyy于2006-3-22 23:04:41编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

TA的精华主题

TA的得分主题

发表于 2006-3-3 15:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

公式比较复杂.


Gdliyy注:
确实没看明白,楼主也想得太复杂了:)不清楚为何排名不用Rank(),反而用了系列数学算法,反正我是看晕了。但总体来看好象只考虑2人并列的情况,所以不能算
正确,希望再考虑下,能有更好的解法,谢谢您的参与

还是讲一下吧.-----------------

我的公式是可以实现三个以重名的,你可能没试.确实要看好多贴.所以我也只是和你讲一下.

原理是sort获得的是{1,1,1..},而sort2获得的是{3,3,3..},用两个sort获得的分求和后再平均,这里平均不是几个人重名的问题,而是因为用了两种排序方法.

公式之所以比较复杂,可能是考虑到如果人员增加,或者项目增加之类的.我把所有东西想得总是很复杂,怪毛病一个.

不过在解这题里我还是掌握了一个新方法,即生成{1,2,3,1,2,3,1,2,3}这样重复数组的方法.ceiling(mod(row(1:9),3.1),1).通常是用if(mod(row(1:9),3)=0,3,mod(row(1:9),3))这个方法要算两次.呵呵,雕虫小技.不足挂齿.只是喜于有所得才口风不严.见谅.

[此贴子已经被作者于2006-4-17 16:29:07编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

TA的精华主题

TA的得分主题

发表于 2006-3-3 19:46 | 显示全部楼层

逐个项目取出得分和直接取出得分两种答案:


Gdliyy注:
总体思路清晰,根据定义的区域分别求出排名,再根据得分在各个项目评分的个数进行
平均,从而得出结果。
解法1,属常规解法,按各区间分别计算并汇总。
解法2:则使用了subtotal\Sumif的三维引用来实现,但是通过N(Offset(,Small)))组合函数来取评分是否没有Sumif()来得快?还有待检测。

结果正确,按解法2评分3分。

[此贴子已经被gdliyy于2006-3-22 23:30:03编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

TA的精华主题

TA的得分主题

发表于 2006-3-3 20:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

很好的竞赛题!

Gdliyy注:

此法属于分段计算再汇总的解法,因此就会导致各个区域分别定义名称,比较繁琐,不推荐使用。

计算结果正确,按题目要求,评分2分。

[此贴子已经被gdliyy于2006-3-22 13:06:21编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

TA的精华主题

TA的得分主题

发表于 2006-3-4 01:26 | 显示全部楼层

版主,请忽略我楼上的答案。

经过此题之后,我对三维引用可算是大彻大悟了。


Gdliyy注:
不错,
使用了Rank\Countif的三维引用以及Countif()的交叉引用来实现,只是公式复杂了些,请详见总结分析。

结果正确,按解法2评分3分。

[此贴子已经被gdliyy于2006-3-22 23:37:49编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

TA的精华主题

TA的得分主题

发表于 2006-3-4 14:23 | 显示全部楼层

上次传的附件中解法想得太复杂了,根据gdliyy版主的新要求,换个思路其实非常简单,只用了三个定义的名称。


Gdliyy注:
此解是目前看来较优的解法,使用三维引用函数(Rank\Subtotal\Countif)来求解,请见首页综合分析。

结果正确,按解法2评分3分。

[此贴子已经被gdliyy于2006-3-22 23:46:02编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

TA的精华主题

TA的得分主题

发表于 2006-3-4 21:51 | 显示全部楼层

这个算不算

Gdliyy注:

此解与前一解相同,不参与评分。

[此贴子已经被gdliyy于2006-3-22 13:07:37编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

TA的精华主题

TA的得分主题

发表于 2006-3-7 09:03 | 显示全部楼层

还是有点难度滴,实在想不出怎么一下子算出


Gdliyy注:
总体思路比较清晰,使用了多单元格联合数组公式来求解,不错。

结果正确,评分2分。

[此贴子已经被gdliyy于2006-3-22 23:52:17编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-7-23 04:54 , Processed in 0.047176 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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