皆さんに楽しんでいただけたようで何よりです。
盛り上がらなかったらどうしようかと心配しておりましたが、心配無用でしたね。
さて、今回の問題は「重み付け」を一つの式の中でどのように表現するかの問題でした。
コメントを入れてくれた方々は重々承知でしょうが、問題を解けなかった方のためにちょこっと書かせていただきます。
勝数だけであればRANK関数で簡単に順位が決められます。
しかし、勝数が同じ場合は得点が関係してきますので単純にRANK関数では決められません。
この得点は今回の場合最大で48×7=336となります。
得点が百の桁で納まりますので、勝数をそれ以上の千の桁、万の桁に修正して
得点を足し算した後で、それぞれを比較すると簡単に順位を決められます。
たとえば、
勝数 得点
4 136
4 130
3 125
であったとすると。
4×1000+136=4136
4×1000+130=4130
3×1000+125=3125
と言うように修正して比較します。
通常は、作業セルを使って修正値を作ります。
その修正値のセルをRANK関数で参照して順位を決めます。
ただし、RANK関数は配列数式では使えません。
その辺もこの問題を作ったミソなんですね。
では、私の作った解答を・・・・・。^^;
(たぶん、皆さんに圧倒されてしまうでしょうが...。)
49文字
{=SUM(N($R$5:$R$12*10^3+$S$5:$S$12>=R5*10^3+S5))}
これをちょっとズルして$を外したバージョン。(^^ゞ
41文字
{=SUM(N(R5:R12*10^3+S5:S12>=R5*10^3+S5))}
71文字
{=MATCH((R5*1000+S5),LARGE(($R$5:$R$12*1000+$S$5:$S$12),ROW($1:$8)),0)}
73文字
{=9-MATCH((R5*1000+S5),SMALL(($R$5:$R$12*1000+$S$5:$S$12),ROW($1:$8)),0)}
61文字
{=MATCH((R5*1000+S5),LARGE((R5:R12*1000+S5:S12),ROW(1:8)),0)}
63文字
{=9-MATCH((R5*1000+S5),SMALL((R5:R12*1000+S5:S12),ROW(1:8)),0)}
(ますたあさん談)
ますたあさんの解答ファイル:Q25_01_2009.lzhをダウンロード
最近のコメント