1、成成员员得得分分名名次次 FALSEFALSEFALSEFALSEFALSEFALSE TRUEFALSETRUEFALSEFALSEFALSE TRUEFALSEFALSEFALSEFALSEFALSE TRUETRUETRUEFALSEFALSETRUE TRUETRUETRUETRUEFALSETRUE TRUETRUETRUEFALSEFALSEFALSE 1 1、先看B13:B18TRANSPOSE(B13:B18)实现了什么。上表先通过transpose把一列数据转换成一行,之后进行比较,得到了表中的结果, 000000 101000 100000 111001 111101 11
2、1000 2 2、上表通过一次数学运算把逻辑值转换成数字。 1 3 2 5 6 4 3 3、如果对表中的行求和再加1,得到的就是得分排名了。 1 3 2 5 6 4 4 4、用mmult实现了行求和的目的。 项项目目成成员员得得分分排名 项目1 A926 B841 C856 D763 E655 F782 项目2 E724 B956 A843 C902 F843 D956 项目3 A785 B684 D873 C921 F882 E684 以上公式选自竞赛题rongjun会员的答案,在此谢过。 如果大家有兴趣,把第九期函数版竞赛题中所有包含mmult函数的答案都采用上面的方法进行分解, 想说“不
3、懂mmult”都难! 竞赛题链接 GVNTW: 公式设计得很巧妙。 有一点小笔误: =MOD(MMULT(-(INT(ROW(C79:C96)-1)/6)*100+C79:C96TRANSPOSE(INT(ROW(C79:C96)-1)/6)*100+C79:C96),ROW(C79:C96)0),6)+1 12 14 13 15 16 16 11 12 1 1、解决此问题的思路按第一课的方法进行,可是本题的要求是求出各项目内的排名,而不是总排名。下面给各项目的得分加入一个项目信息。 项目1的信息是0,项目2是1,项目3是2,见上表D27:D44。把项目信息乘上100,结果为E27:E44。再求和,把项目信息和得分相加,结果见F27:F44。 14 13 14 12 16 11 15 13 14 01 =MOD(MMULT(-(INT(ROW(C79:C96)-1)/6)*100+C79:C96TRANSPOSE(INT(ROW(C79:C96)-1)/6)*100+C79:C96),ROW(C79:C96)0),6)+1