エクセルでの同率順位の対処方法

このQ&Aのポイント
  • エクセル上で同率順位を表示する際、異なる色で区別するための方法を紹介します。
  • 現在の方法では同率1位が2つある場合に問題が発生し、2番目に大きい数字が正しく表示されません。
  • 改善案として、同率1位が2つ以上ある場合でも正しく表示する方法を提案します。
回答を見る
  • ベストアンサー

エクセルでの順位に同率がある場合の対処について

■エクセル上で数字に順位を付けて上位(下位)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です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

ありゃりゃ。とんだ手抜かりを。 んでは簡単じゃない数式を使った方法で。 それぞれ「次の値に等しい」で 1位: =LARGE(IF(FREQUENCY($C$6:$C$100+0,$C$6:$C$100+0),$C$6:$C$100),1) 2位: =LARGE(IF(FREQUENCY($C$6:$C$100+0,$C$6:$C$100+0),$C$6:$C$100),2) 3位: =LARGE(IF(FREQUENCY($C$6:$C$100+0,$C$6:$C$100+0),$C$6:$C$100),3) 失礼しました。

kazu211
質問者

お礼

別の方法での回答ありがとうございます。 この方法を使うと出来ましたが、ちょっと参照量が多くなると動作が重くなってしまいました。 FREQUENCY関数と言うのは初めて見たので、理解は出来ていませんが方法の一つとして参考になりました。 No.3のkagakusuki様の補足もあり、最初に回答された方法と併せて解決しました。 ありがとうございました。

その他の回答 (4)

noname#204879
noname#204879
回答No.5

添付図参照 1.セル B1 に式 =IF(COUNTIF(A$1:A1,A1)>1,"",A1) を入力して、   此れを下方にズズーッとドラッグ&ペースト 2.セル A1 に次の[条件付き書式]を設定して、範囲 A2:A5 に   [書式の貼り付け]を実行    条件1      数式が   =RANK(A1,B$1:B$5)=1      フォント色 赤    条件2      数式が   =RANK(A1,B$1:B$5)=2      フォント色 青    条件3      数式が   =RANK(A1,B$1:B$5)=3      フォント色 緑

kazu211
質問者

お礼

回答ありがとうございます。 出てきた数字を調べてBに書き出す(同じ数字は2回目以降は空白) Aセルの値をBに書き出した数字でランク降順にして、それぞれ1位・2位・3位となった場合にそれぞれ色を付ける。 と言った風に解釈しました。 色んなやり方で出来るのですね。どれも思いつかない方法だったので助かりました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 ANo.1様の方法ですと、一位の数字と二位の数字の方法に関しましては、大変優れた方法だと思います。  但し、三位の数字の方法に関しましては、一位の数字が複数存在している場合には、誤った動作をしてしまいます。  ですから、三位の数字の場合は =LARGE($C$6:$C$100,COUNTIF($C$6:$C$100,">="&LARGE($C$6:$C$100,2))+1) ではなく、 =LARGE($C$6:$C$100,COUNTIF($C$6:$C$100,">="&LARGE($C$6:$C$100,COUNTIF($C$6:$C$100,MAX($C$6:$C$100))+1))+1) 等とする必要があります。

kazu211
質問者

お礼

回答ありがとうございます。 この方法を使う事で解決しました。 3位の方法は自分なりに解釈しようとしたのですが、特に大なりイコールとアンドで結ばれている所が分りませんでした。 解釈は出来ていませんが解決は出来ました。ありがとうございます。 ベストアンサーに非常に悩んだのですが、ベストアンサーが1つしか選べないので申し訳ないです。

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.2

自分は計算の誤差にならない微少な数字を各値に加えちゃいます。  10 → 10 + 0.000001  20 → 20 + 0.000002  30 → 30 + 0.000003  40 → 40 + 0.000004  40 → 40 + 0.000005 面倒なのでROW関数を使って  10 → 10 + ROW()/1000000  20 → 20 + ROW()/1000000  30 → 30 + ROW()/1000000  40 → 40 + ROW()/1000000  40 → 40 + ROW()/1000000 と、しちゃうかな。 でもって、微少数値を加えた後でLARGE関数を使うとかします。

kazu211
質問者

お礼

回答ありがとうございます。 今回は同率1位を両方とも赤色にした上で次の順位を青色と言った具合にしたかったので、 質問の仕方が悪かったのかも知れませんが、この方法は同率1位を回避する事に使えそうです。 一つの参考になりました。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

簡単な関数だけで結果を得るなら。 一位の数字は今のままでもいいですが =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) などのように拾ってくることができます。 それぞれ「次の値に等しい」に与えます。

kazu211
質問者

お礼

素早い回答ありがとうございます。 2位の方法はMAX関数で1位の数を調べ、それに+1する事で次が何位になるのか分かるので、 それをLARGE関数で抜き出すと言う風に解釈しました。 同率1位がいくつあろうと、その次の順位を抜き出すのはややこしい手順が必要なんですね。

関連するQ&A

  • エクセルの条件付き書式について

    A1セルに「100」が入力された場合、B1セルの色を赤に、同様にして200:青、300:黄、400:緑、500:赤、600:青、700:黄、800:緑という風にB1セルの色を変えたいと思います。 条件付き書式は3つまでしかないのですが、色のパターンは4種類なので、元の書式と合わせると4パターンです。 条件付書式で、A1セルの値が200又は600ならB1セルの色を青にするにはどうすればよろしいでしょうか。 つたない文章でわかりにくいかと思いますが、よろしくご回答ください。

  • Excelの条件付き書式を行に適用するには

    Excelで条件付き書式ってありますよね。 あの機能を使って セルの値が○○に等しいとき セルの色を設定することはできますが,その行すべてを色を変えるというのはできませんか? 例えばA1セルの値が1なら 1行は赤色。A7セルの値も1なら7行も赤色。 A3セルの値が5なら 3行は青色。 A9セルの値も5なら 9行も青色。 というようにしたいのですが・・・ また, もう一つ質問ですが この条件付き書式は 条件が3つまでしかできませんよね。 例えば 上の条件に付け加えて さらに A10セルの値が4なら 10行は黄色と設定したとすると それ以上できないですよね つまりA11行セルの値が9なら 11行は 緑色としたい場合は どうすればいいでしょうか?

  • エクセルで「前回より大きい数字、または小さい数字の場合のフォント色を変

    エクセルで「前回より大きい数字、または小さい数字の場合のフォント色を変えたい 毎日の体重をエクセルで管理したいのですが、前日との違いを色でわかるようにしたいと考えています。 「条件付書式」で、「セルの値が」「次の値より大きい」または「次の値より小さい」「=前回のセル」で書式ボタンでフォントを赤と青の設定にし、書式のみコピーにすると、設定したセルの値は反映されるのですが、前日のセルが反映される方法がわかりません。 よろしくお願いします。

  • EXCELで条件付書式を使いたいが

    またまた質問させていただきます。 条件付書式を使ってセルの色を変えようとしたのですが、条件が6条件有り出来ませんでした。 やりたいことは、C5~AJ54の範囲のセルに下記の文字が入ったとき、そのセルの色を変えたいのです。 入力  セル色 赤外---黄色 青外---黄色 赤中---緑色 青中---緑色 赤内---青色 青内---青色 といったことがしたいのです。 VBAを使ってセルを塗りつぶす例などを調べてやってみましたが、勉強不足で旨くいきませんでした。 どうか、宜しくお願いします。

  • エクセルのLARGE関数について教えてください。

    エクセルのLARGE関数を使って、1位から3位までの順位を検索するのですが、1位の数値が入っているセルをピンクに、2位は黄色、3位は青というように塗りつぶして、一目でわかるようにしたいのですが、セルを塗りつぶす方法が分かりません。教えてください。

  • EXCELでこういうことできますか。

    関数と書式設定を使っていいところまではいったのですが、ダメでした。 たとえば、セルA1からA12まで1月~12月を入れます、B1からB12までは成績(適当な数字)が入ります、1番成績の良い月のセルを赤色に塗り、2番目を黄色1番悪い成績の月のセルを青色に塗る。 こんなことできますか、 教えて下さい。

  • Excel で「日曜日」の色を赤色にしたい!

     単純なことですが、どうもうまく行きません。  Excel2000(ちょっと古め)を使っています。  入力した年月日を入れると曜日を表示させて、日曜日の色を「赤色」にしたいのですが、どーもうまくいきません。  フォーマット(書式)を (aaa) とすると日曜日だと「(日)」とセルに表示させることができたので、 [書式]→[条件付き書式の設定]で、 条件1(1) で、 「セルの値が」、「次の値に等しい」「="日"」として 書式で「セルの書式設定」でのフォントの色を「赤色」にしましたが、 うまく反映されません。  なにか間違っているのでしょうか?  単純なことなのにできなくて、はがゆいです。  この方法には、こだわっていませんので良い方法があればお知らせください。  よろしくお願い致します。  

  • Excelのweekday関数に付いて

    カレンダーを作っています。 WEEKDAY関数を使って作業しています。 日曜日を赤で土曜日を青で祝日を赤で表示させたいのですが。 手順は 書式→条件付き書式の設定→条件1にセルの値が次の値に等しいを選んで数字の1を入力→条件に2にセルの値が次の値に等しいを選んで数字の7を入力→追加(A)の追加タブを選択肢し条件3にセルの値が次の値に等しいを選んで幾つの数字を入れれば祝日を赤にすることが出来ますでしょうか? また、カレンダーに曜日を月から日まで入力することは出来ますが祝日と表示させるにはどのようにすれば宜しいでしょうか? 教えて下さい。

  • エクセルであるデータの個数を表示させる方法について

    以前エクセルで10人の順位(順位は関数を用いました。また、当該順位を決めるための検査を10回行っているものとする)について、上位三人を条件付き書式を用い下位三位と条件設定(この場合における数値は、小さい方が上位の順位を示すことになるから)した上でセルを緑色にすること・下位三人を同じく条件付き書式を用い上位三位と条件設定(この場合における数値は、大きい方が下位の順位を示すことになるから)した上でセルを赤色にしました。 その10人の成績の決め方はあるものを有している個数で、ただ当該10人が異なる所有数であればよかったのですが、残念ながら数値が同数の人が上位・下位それぞれ三位内にいました。 その場合、たとえば下位四人の数値が同じときその四人には六位(同一六位で四人)が付くと思い、その状態で条件付き書式を用いると下位四人のセルが赤色になると思われます。 それはそれでいいのですが、個人的にはcountifを用い10回行った結果として各10人それぞれが下位三位になった回数(たとえば、Aさんは2回・Bさんは5回など)も記載したいと思っており、ただ前段落に記載したような六位が四人などのケースの場合、六位と記載されることにより七位以下とはカウントされないと思われます。 そのためやり方を変え、当該各10人それぞれについている赤色のセルの数(たとえば、Cさんに1つなど)をカウントすることにしましたが、方法がわかりません。 そこで質問ですが、条件付き書式などで赤色のセルになった個数をカウントするためには、どのようにすればいいでしょうか。

  • エクセルで。

    エクセルで、条件付書式を使って、セルの内容が「本見積」ならセルを赤色になるように、「仮見積」なら青色になるようにしてます。 例えば、セル「A1」が「本見積」の場合、セル「A1~A5」までを全部赤色に、同様に「A1」が「仮見積」なら「A1~A5」を青色になるようにしたいのですが、無理でしょうか?

専門家に質問してみよう