=INDIRECT(CHAR(66-MOD(COLUMN(),2))&RIGHT(SMALL(CHOOSE(COLUMN($A$2:$B$101),MATCH(ROW($A$2:$B$101)-2,MMULT(--(ROW($1:$6)>=COLUMN($A:$F)),MOD(-COUNTIF($B$2:$B$101,$C$1:$C$6),20)))*1110,MATCH($B$2:$B$101,$C$2:$C$6,0)*1000+ROW($A$2:$B$101)),COUNTIF(OFFSET(E1,-MOD(ROW()-2,10),0,MOD(ROW()-2,10)+1,1),"<>")+10*(COLUMN()>6)+COUNTIF(OFFSET($F$1,0,0,FLOOR(ROW()-2,10)+1,2),"<>")-2),3))&""
377字符
在哪点使用仅楼主可见呢?
这个周末改了一下,252字符
=OFFSET($B$1,RIGHT(SMALL(IF({0,2},MATCH(ROW($2:$101)-2,MMULT(1-(ROW($1:$6)<COLUMN($A:$F)),MOD(-COUNTIF($B$2:$B$101,$C$1:$C$6),20)))*1110,MATCH($B$2:$B$101,$C$2:$C$6,0)*1000+ROW($1:$100)),ROW()+10*(COLUMN()>6)+FLOOR(ROW()-2,10)-1),3),-MOD(COLUMN(),2))&""
思路非常好,构造2列内存数组,给做题打来了很大的简化,一个小缺憾是无法处理处理一些出现学校,比如B2为庚。但就题目而言没有任何问题
[ 本帖最后由 冻豆腐 于 2010-9-23 21:41 编辑 ] |