根据题目要求,投机取巧简单的做了一个解答,答案已经发送,303个字符。 说明:题目要求用同一个公式来得到三列答案,这样的题目已经连续出现过好几期。但这题的字符限制360个字符的限制比较宽松, 通过G:I列的常规做法可以发现,三个单独的公式长度并不长,因此即使采用最笨拙的方法将三个公式组合到一起,长度也可以在要求范围之内。 因此,未考虑优化的方案,只是简单的结合三个公式得到最终答案。其中,第二个方案由去除公式中的绝对引用符号而得到,比第一个方案在理解上稍困难些。 如果源数据行数很多,公式中"*100"的部分需要相应放大。 327个字符: =IF(MIN(COUNTIF($D$1:$D1,$A$1:$A$18)),"",IF($D1=D1,INDEX($A:$A,SMALL(IF(MATCH($A$2:$A$18,$A$2:$A$18,)=ROW($A$2:$A$18)-1,ROW($A$2:$A$18)),ROW(A1))),IF($E1=D1,INDEX($B:$B,MOD(MAX(MMULT(--($B$2:$B$18=TRANSPOSE($B$2:$B$18)),($A$2:$A$18=C2)*$C$2:$C$18)*100+ROW($B$2:$B$18)),100)),SUM(($A$2:$A$18&$B$2:$B$18=$D2&$E2)*($C$2:$C$18))))) 303个字符: =IF(MIN(COUNTIF($D$1:$D1,$A$1:$A$18)),"",IF($D1=D1,INDEX(A:A,SMALL(IF(MATCH(A$2:A$18,A$2:A$18,)=ROW(A$2:A$18)-1,ROW(A$2:A$18)),ROW(A1))),IF($E1=D1,INDEX(A:A,MOD(MAX(MMULT(--(A$2:A$18=TRANSPOSE(A$2:A$18)),($A$2:$A$18=C2)*B$2:B$18)*100+ROW(B$2:B$18)),100)),SUM(($A$2:$A$18&$B$2:$B$18=B2&C2)*(A$2:A$18)))))
[此贴子已经被willin2000于2008-2-28 14:48:36编辑过] |