zhh823543 发表于 2012-5-8 16:21

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

本帖最后由 zhh823543 于 2012-5-8 18:23 编辑

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

魔魔 发表于 2012-5-8 21:07

=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个字符,取巧了

魔魔 发表于 2012-5-8 23:09

嗯,见于文本比较的时候,汉字比数字大,当小数位数不一样的时候最大值可能会错,我改了公式虽然长了,不过可以保证是对的
和120正相反,210=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应该够了

魔魔 发表于 2012-5-8 23:37

=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,"")因为有可能整数位不一样,于是又改了一下,应该是可以了

zhh823543 发表于 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,"")

zhh823543 发表于 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,"")

wjc2090742 发表于 2012-5-9 00:53

本帖最后由 wjc2090742 于 2012-5-9 00:59 编辑

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

=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)

5blessyou 发表于 2012-5-9 12:27

楼上公式还是有点不足,E2改为A组:9%就能看出了,个人认为用行号这种办法难以处理这个
改进一下=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,"")

wjc2090742 发表于 2012-5-9 14:12

5blessyou 发表于 2012-5-9 12:27 http://www.excelpx.com/static/image/common/back.gif
楼上公式还是有点不足,E2改为A组:9%就能看出了,个人认为用行号这种办法难以处理这个
改进一下=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,"")最稳妥的写法了应该。

wjc2090742 发表于 2012-5-9 14:13

取巧的方法,选中F2:F5,多单元格数组公式,选中4格下拉。

=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)
页: [1] 2 3
查看完整版本: 如何找出各个项目的最佳成绩及对应班组