不会是沙发还是我的,
169字符:纯2003版可以通过
=INDEX(B:B,LARGE(ISNA(MATCH(A$2:A$31,T(OFFSET(A$1,MATCH(D$1:D1,B$2:B$31,),)),))*ROW($2:$31),RANDBETWEEN(1,30-SUM(COUNTIF(A:A,T(OFFSET(A$1,MATCH(D$1:D1,B$2:B$31,),)))))))
164字符,字符是少了,但效率低了,不可取:
=INDEX(B:B,LARGE(ISNA(MATCH(A$2:A$31,T(OFFSET(A$1,MATCH(D$1:D1,B:B,)-1,)),))*ROW($2:$31),RANDBETWEEN(1,30-COUNT(MATCH(A:A,T(OFFSET(A$1,MATCH(D$1:D1,B:B,)-1,)),)))))
162字符
=INDEX(B:B,LARGE(ISNA(MATCH(A$2:A$31,T(INDIRECT("a"&MATCH(D$1:D1,B:B,))),))*ROW($2:$31),RANDBETWEEN(1,30-COUNT(MATCH(A:A,T(INDIRECT("a"&MATCH(D$1:D1,B:B,))),)))))
137字符,在2007兼容模式下可运行
=INDEX(B:B,RIGHT(MAX(ISNA(MATCH(A$2:A$31,T(OFFSET(A$1,MATCH(D$1:D1,B$2:B$31,),)),))*(RANDBETWEEN(1,ROW(2:31)^0/1%%)&ROW($2:$31)%)),3)/1%)
[ 本帖最后由 chenhh803 于 2011-8-8 13:17 编辑 ] |