Excel精英培训网

 找回密码
 注册
查看: 14131|回复: 28

如何找出各个项目的最佳成绩及对应班组

  [复制链接]
发表于 2012-5-8 16:21 | 显示全部楼层 |阅读模式
本帖最后由 zhh823543 于 2012-5-8 18:23 编辑

如何找出各个项目的最佳成绩及对应班组
补充说明:
1.二阶目标好于一阶目标,这用来确定每个项目的成绩评判方向,确定最佳的应该是选最大的还是最小的;
2.单位的第1个字符对公式编辑也许会有帮助。

Book2.rar

2.34 KB, 下载次数: 293

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-5-8 21:07 | 显示全部楼层
  1. =IF(SUM(N(MID(OFFSET(E2:E5,-SUM(MOD(ROW(A4),4)),),4,99)>=MID(E2,4,99)))=4^(LOOKUP(9^9,B$1:B2)>LOOKUP(9^9,C$1:C2)),E2,"")
复制代码
正好120个字符,取巧了

点评

很巧妙!特别是4的指数的应用。如果把SUM(MOD(ROW(A4),4))改成MOD(ROWs($1:4),4),字符还可少一点。  发表于 2012-5-8 22:12

评分

参与人数 5 +48 金币 +30 收起 理由
小妖 + 10
ddmyykdzh + 5 今天才发现,原来我是函白
mfksypss + 3 太厉害了!
wp8680 + 20 看到这里,才知道我什么都不会了。
zhh823543 + 20 很给力!

查看全部评分

回复

使用道具 举报

发表于 2012-5-8 23:09 | 显示全部楼层
嗯,见于文本比较的时候,汉字比数字大,当小数位数不一样的时候最大值可能会错,我改了公式虽然长了,不过可以保证是对的
和120正相反,210
  1. =IF(SUM(--(SUBSTITUTE(MID(OFFSET(E2:E5,-SUM(MOD(ROW(A4),4)),),4,99),LEFT(LOOKUP("座",D$1:D2)),"0000")>SUBSTITUTE(MID(E2,4,99),LEFT(LOOKUP("座",D$1:D2)),"0000")))+1=4^(LOOKUP(9^9,B$1:B2)>LOOKUP(9^9,C$1:C2)),E2,"")
复制代码
补4个0应该够了

点评

4个0补在后面没起什么作用,而且似乎还是文本比较  发表于 2012-5-8 23:41

评分

参与人数 1金币 +10 收起 理由
小妖 + 10

查看全部评分

回复

使用道具 举报

发表于 2012-5-8 23:37 | 显示全部楼层
  1. =IF(SUM(--(-MID(SUBSTITUTE(OFFSET(E2:E5,-SUM(MOD(ROW(A4),4)),),LEFT(LOOKUP("座",D$1:D2)),"0000"),4,6)<=-MID(SUBSTITUTE(E2,LEFT(LOOKUP("座",D$1:D2)),"0000"),4,6)))=4^(LOOKUP(9^9,B$1:B2)>LOOKUP(9^9,C$1:C2)),E2,"")
复制代码
因为有可能整数位不一样,于是又改了一下,应该是可以了

点评

这样可以了,把SUM(MOD(ROW(A4),4))改成MOD(ROWS(A4),4),前面的--也能改成N了  发表于 2012-5-8 23:56

评分

参与人数 2 +20 金币 +30 收起 理由
小妖 + 10
zhh823543 + 20 + 20 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-5-8 23:46 | 显示全部楼层
根据2楼、3楼的公式改了一下:
=IF(SUM(N(MID(OFFSET(E2:E5,-MOD(ROWS($1:4),4),),4,FIND(LEFT(LOOKUP("座",D$2:D2)),OFFSET(E2:E5,-MOD(ROWS($1:4),4),))-4)-MID(E2,4,FIND(LEFT(LOOKUP(("座",D$2:D2)),E2)-4)>=0))=4^(LOOKUP(9^9,B$1:B2)>LOOKUP(9^9,C$1:C2)),E2,"")
回复

使用道具 举报

 楼主| 发表于 2012-5-9 00:28 | 显示全部楼层
根据4楼的公式改了一下:

=IF(SUM(N(MID(SUBSTITUTE(OFFSET(E2:E5,-MOD(ROWS($1:4),4),),LEFT(LOOKUP("座",D$1:D2)),"0000"),4,6)-MID(SUBSTITUTE(E2,LEFT(LOOKUP("座",D$1:D2)),"0000"),4,6)>=0))=4^(LOOKUP(9^9,B$1:B2)>LOOKUP(9^9,C$1:C2)),E2,"")

评分

参与人数 1金币 +10 收起 理由
小妖 + 10

查看全部评分

回复

使用道具 举报

发表于 2012-5-9 00:53 | 显示全部楼层
本帖最后由 wjc2090742 于 2012-5-9 00:59 编辑

数组公式,rept(0,15)应该可以应对绝大多数情况了,代魔魔发。

  1. =IF(MOD(ROW()-2,4)+1-RIGHT(MAX((MID(SUBSTITUTE(OFFSET(E$1,COUNT(B$2:B2)*4-3,,4),LEFT(LOOKUP("座",D$1:D2)),REPT(0,15)),4,15)&{1;2;3;4})*-1^(LOOKUP(9^9,B$1:B2)>LOOKUP(9^9,C$1:C2)))),"",E2)
复制代码

点评

只要有小数点,就不会有问题了.又提供了1个不错的思路.  发表于 2012-5-9 12:24

评分

参与人数 2 +20 金币 +30 收起 理由
小妖 + 10
zhh823543 + 20 + 20 很给力!

查看全部评分

回复

使用道具 举报

发表于 2012-5-9 12:27 | 显示全部楼层
楼上公式还是有点不足,E2改为A组:9%就能看出了,个人认为用行号这种办法难以处理这个
改进一下
  1. =IF(ABS(MAX(-1^(LOOKUP(9^9,B$1:B2)>LOOKUP(9^9,C$1:C2))*MID(SUBSTITUTE(OFFSET(E$1,COUNT(C$1:C2)*4-3,,4),LEFT(LOOKUP("座",D$1:D2)),REPT(" ",15)),4,15)))=-LOOKUP(1,-MID(SUBSTITUTE(E2,"%",),4,ROW($1:$9))),E2,"")
复制代码

评分

参与人数 1金币 +10 收起 理由
小妖 + 10

查看全部评分

回复

使用道具 举报

发表于 2012-5-9 14:12 | 显示全部楼层
5blessyou 发表于 2012-5-9 12:27
楼上公式还是有点不足,E2改为A组:9%就能看出了,个人认为用行号这种办法难以处理这个
改进一下
  1. =IF(MAX(MID(SUBSTITUTE(OFFSET(E$1,COUNT(B$2:B2)*4-3,,4),LEFT(LOOKUP("座",D$1:D2)),REPT(" ",15)),4,15)*-1^(LOOKUP(9^9,B$1:B2)>LOOKUP(9^9,C$1:C2)))^2=MID(E2,4,FIND(LEFT(LOOKUP("座",D$1:D2)),E2)-4)^2,E2,"")
复制代码
最稳妥的写法了应该。

评分

参与人数 2 +12 金币 +22 收起 理由
zhh823543 + 12 + 12 很给力!
小妖 + 10

查看全部评分

回复

使用道具 举报

发表于 2012-5-9 14:13 | 显示全部楼层
取巧的方法,选中F2:F5,多单元格数组公式,选中4格下拉。

  1. =IF({1;2;3;4}-RIGHT(MAX((MID(SUBSTITUTE(E2:E5,LEFT(D2),REPT(" ",15)),4,15)+{1;2;3;4}%%%)*-1^(B2>C2))),"",E2:E5)
复制代码

点评

有点太取巧了,如果规律如此,实用性不错。  发表于 2012-5-9 15:53

评分

参与人数 3 +21 金币 +22 收起 理由
zhh823543 + 12 + 12 很给力!
小妖 + 10
5blessyou + 9

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 21:35 , Processed in 0.393114 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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