質問: エクセルでの順位に同率がある場合の対処について ■エクセル上で数字に順位を付けて上位(下位)3位までの数字に色を付けたい。 ■現在の方法 書式→条件付書式 条件1 セルの値が次の値に等しいを選び、 関数「=large($c$6:$c$100,1)」と入力し、書式で文字の色を指定。赤色 条件2 セルの値が次の値に等しいを選び、 関数「=large($c$6:$c$100,2)」と入力し、書式で文字の色を指定。青色 条件3 セルの値が次の値に等しいを選び、 関数「=large($c$6:$c$100,3)」と入力し、書式で文字の色を指定。緑色 ■問題点 1番大きい数字が2つある場合、2箇所が赤色になり、2番目に大きい数字が緑色になる。青色は使われない。 (順位で言うと同率1位が二つ、2位が飛ばされて3位が一つと処理される(1位・1位・3位)) ■やりたい事 1番大きい数字が2つある場合2箇所とも赤色にし、2番目に大きい数字を青色、3番目に大きい数字を緑色にしたい。 (順位で言うと1位・1位・2位・3位と言った具合にしたい) もし2番目に大きい数字が3つあってもその3箇所を青色にして、3番目に大きい数字を緑色にする。 (順位で言うと1位・1位・2位・2位・2位・3位の様な感じ) 具体的に言うと 現在 10 20 30→緑色 40→赤色 40→赤色 これを 10 20→緑色 30→青色 40→赤色 40→赤色 にしたいのです。 ■補足 表の範囲はc6~c100としていますが、実際はc30までしか使っていなく、それ以降は日々データを記入するので拡張用としている。 使用しているエクセルはエクセル2002です。 よろしくお願いします。
回答: 簡単な関数だけで結果を得るなら。 一位の数字は今のままでもいいですが =max($c$6:$c$100) でいいです。 二位の数字は =large($c$6:$c$100,countif($c$6:$c$100,max($c$6:$c$100))+1) 三位の数字は =large($c$6:$c$100,countif($c$6:$c$100,">="&large($c$6:$c$100,2))+1) などのように拾ってくることができます。 それぞれ「次の値に等しい」に与えます。