- ベストアンサー
RANK関数についてお尋ねです
駅伝の集計表の修正をしているところなのですが、区間順位を出すためにRANK関数を使用しています。オープン参加のチームを順位に反映させないように、範囲をCtrlを押しながらして「挿入→名前→定義」で指定しています。すると、順位がきちんと出なくなったのです。(←本来3位のはずが4位となり、その後の順位もずれてしまっています)ちなみに区間タイムは親時計から差し引いて出しています。どなたか教えて頂けないでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
私が下記例でやると下記の現象(問題点)がありました。 そう言う問題ではないでしょうか。 (例)A1:A10 12 3 11 5 4 2 6 4 5 1 (名前) A1:A4、A8:A10を範囲指定してaaaと名前を付けた。 (式)B1に=RANK(A1,aaa) といれ、A10まで複写(ここが曲者か)。 (結果)エラー表示回避はしてませんが 1 6 2 3 5 #N/A #N/A 5 3 7 順番は合ってますが、A5は範囲に入ってませんが5が出てしまいます。 しかしランク関数は本来、範囲に入ってないセルの値でも、範囲の中で(言えば)何番かを判定します。(値・中心主義とでも言いましょうか。) だから、RANKを使い複写で式を扱う時は注意が必要ということですね。 オープン参加のチームの行の特定列に何かサイン(コード)を持たせて、ランク数字を出さないようにしないと 紛らわしいですね。
その他の回答 (1)
- mshr1962
- ベストアンサー率39% (7417/18945)
オープン参加の識別はありますか? A B C D E OP チーム名 区間1 区間2 区間3... O 一般1 1:20 2:40 3:60 S 招待1 0:50 1:45 2:30 としてOPにオープン参加はO、招待チームはSのようにします。 区間1の順位=IF($A2="S",SUMPRODUCT(($A$2:$A$9="S")*($B$2:$B$9<=B2)),"") 区間2の順位=IF($A2="S",SUMPRODUCT(($A$2:$A$9="S")*(C$2:C$9-B$2:B$9<=C2-B2)),"") 区間3の順位は区間順位2のコピーでOK 注意:繰り上げスタートには対応してません。
お礼
大変丁寧な回答を頂いてありがとうございました。質問したあと、定義した範囲を良く見てみたら、同じセルを2回指定していました!本当に凡ミスです。お手数おかけして申し訳ありません。また分からないことがありましたらよろしくお願いいたします。
お礼
大変丁寧な回答を頂いてありがとうございました。質問したあと、定義した範囲を良く見てみたら、同じセルを2回指定していました!本当に凡ミスです。お手数おかけして申し訳ありません。また分からないことがありましたらよろしくお願いいたします。