• ベストアンサー

Excelでランク付け

あるデータ範囲のなかに特定の言葉が何回出てくるかはCOUNTIFとかで分かりますよね? では、例えば・・・ a,a,b,c,d,b,f,e,a,c,b,d,d,d,d・・・というように並んでいるときに、 一番多いのは○、二番目は△、三番目は□・・・と出すことは出来るでしょうか? もちろん一番、二番・・・は違うセルでOKです。 知っている方いましたらお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

#5です。 (例データ)A2:B11(訳あって第1行は空白にする) a a b b a a 1 c d 2 c 3 b 4 (まず要素を羅列) B1に=IF(COUNTIF($A$2:$A$11,A2)=COUNTIF($A$2:A2,A2),MAX($B$1:B1)+1,"") と入れてB11まで式を複写 (結果) 上記のとおり。4つ要素があることが分かる。 (要素を取り出す) 例えばD2に =INDEX($A$2:$A$11,MATCH(ROW()-1,$B$2:$B$11,0),0) をいれてD5まで4行分複写。要素が現れる。 (結果) a 4 b 3 c 2 d 1 (出現回数) E2に=COUNTIF($A$2:$A$11,D2) E5まで複写 (結果) 上記のとおり。 (値複写) D2:E5を自身のセルに値複写。D,E列の式を消す。 (ソート) D2:E5を範囲指定して並べ替え。E列をキーとする降順。 結果上記のとおり。

yuki0926
質問者

お礼

お礼が大変遅くなって申し訳ありませんでした。 モデムが壊れてしまいネットに繋がる環境がなくなってしまったため返信できませんでした。 本当に申し訳ありません。 大変親切な回答でとても感謝しています。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (7)

noname#94613
noname#94613
回答No.8

ANo.2です! 質問内容が変わったようなので、補足します! A列は”1番目”~”5番目”と文字列で入力しておく! E列には”a”~”b”と文字列で入力しておく! 最終結果として、A列~C列が答えです! B列は回数が多かった文字の順番! C列は、それに対応した回数の値です! D列とE列は、ダミーとして下さい!     A   B  C  D  E 1  1番目 a  7  7  a 2  2番目 c  5  4  b 3  3番目 b  4  5  c 4  4番目 e  3  2  d  5  5番目 d  2  3  e D列にはE列に対応した回数をCOUNTIF文で求める下記の式を入力する! D1=COUNTIF(データ範囲,E1) D2=COUNTIF(データ範囲,E2) D3=COUNTIF(データ範囲,E3) D4=COUNTIF(データ範囲,E4) D5=COUNTIF(データ範囲,E5) C列はD列の値をLARGE文にて回数が多かった順に並び替える下記の式を入力する! C1=LARGE(D$1:D$5,1) C2=LARGE(D$1:D$5,2) C3=LARGE(D$1:D$5,3) C4=LARGE(D$1:D$5,4) C5=LARGE(D$1:D$5,5) B列には回数が多かった順位に並び替えたC列に対応する文字(a~e)を表示させる下記の式を入力する。 B1=IF(C1=D$1,E$1,IF(C1=D$2,E$2,IF(C1=D$3,E$3,IF(C1=D$4,E$4,E$5)))) B2=IF(C2=D$1,E$1,IF(C2=D$2,E$2,IF(C2=D$3,E$3,IF(C2=D$4,E$4,E$5)))) B3=IF(C3=D$1,E$1,IF(C3=D$2,E$2,IF(C3=D$3,E$3,IF(C3=D$4,E$4,E$5)))) B4=IF(C4=D$1,E$1,IF(C4=D$2,E$2,IF(C4=D$3,E$3,IF(C4=D$4,E$4,E$5)))) B5=IF(C5=D$1,E$1,IF(C5=D$2,E$2,IF(C5=D$3,E$3,IF(C5=D$4,E$4,E$5))))

yuki0926
質問者

お礼

お礼が大変遅くなって申し訳ありませんでした。 モデムが壊れてしまいネットに繋がる環境がなくなってしまったため返信できませんでした。 本当に申し訳ありません。 大変親切な回答でとても感謝しています。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#94613
noname#94613
回答No.6

ANo.2です! 本当に何度も申し訳ありません!また、訂正です! 今回は実際にエクセルで作成したままの式をコピペしました! 実際に下記の結果が表示されましたから、今度こそ間違えないです! C1だけに式を入れて、同じものをC2~C5へコピーして下さい!   A B C 1 a 7 ○  2 b 5 △ 3 c 4 □ 4 d 2 ◇ 5 e 3 ☆ 「C1の式」 =IF(B1=LARGE($B$1:$B$5,1),"○",IF(B1=LARGE($B$1:$B$5,2),"△",IF(B1=LARGE($B$1:$B$5,3),"□",IF(B1=LARGE($B$1:$B$5,4),"☆","◇")))) 「C2の式」 =IF(B2=LARGE($B$1:$B$5,1),"○",IF(B2=LARGE($B$1:$B$5,2),"△",IF(B2=LARGE($B$1:$B$5,3),"□",IF(B2=LARGE($B$1:$B$5,4),"☆","◇")))) 「C3の式」 =IF(B3=LARGE($B$1:$B$5,1),"○",IF(B3=LARGE($B$1:$B$5,2),"△",IF(B3=LARGE($B$1:$B$5,3),"□",IF(B3=LARGE($B$1:$B$5,4),"☆","◇")))) 「C4の式」 =IF(B4=LARGE($B$1:$B$5,1),"○",IF(B4=LARGE($B$1:$B$5,2),"△",IF(B4=LARGE($B$1:$B$5,3),"□",IF(B4=LARGE($B$1:$B$5,4),"☆","◇")))) 「C5の式」 =IF(B5=LARGE($B$1:$B$5,1),"○",IF(B5=LARGE($B$1:$B$5,2),"△",IF(B5=LARGE($B$1:$B$5,3),"□",IF(B5=LARGE($B$1:$B$5,4),"☆","◇"))))

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

>a,a,b,c,d,b,f,e,a,c,b,d,d,d,d・ は各セルに例えばA1にa,A2にa,A3にb,A4にc・・と入っているということですよね。 #1のご回答が正しいですか。 >一番多いのは○、二番目は△、三番目は□・・・と出すことは ○△などは具体的に一番多いのはd(5回)、2番目に多いのがb(3回)などと出すのでしょうか。それともdの横列セルに○を出すのでしょうか。 問題が曖昧な気がします。

yuki0926
質問者

補足

失礼しました。 一番多いのは○・・・・と書いたために誤解が多かったようです。 >○△などは具体的に一番多いのはd(5回)、2番目に多いのがb(3回)などと出すのでしょうか。 おっしゃる通りで、 一番多い物:d(5回) 二番目に多い物:b(3回) 三番目に多い物:   ・   ・   ・ というふうに出したいのです。 よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
noname#94613
noname#94613
回答No.4

ANo.2です! 何度も申し訳ありません! 補足としまして、C列の書式設定は文字列にしていただくことと、 併せて、C1の式をC2~C5へコピーすることを考えて、 正しくは、下記です! IF(B1=LARGE(B$1:B$5,1),’○’,IF(B1=LARGE(B$1:B$5,2),’△’IF(B1=LARGE(B$1:B$5,3),’□’,・・・以下省略

全文を見る
すると、全ての回答が全文表示されます。
noname#94613
noname#94613
回答No.3

ANo.2です! 誠に申し訳ありません! 慌てて、最後のC列の式のカッコの位置を誤りました! LARGEの直前のカッコ「(」は不要でした! 正しくは、下記です! IF(B1=LARGE(B1:B5,1),’○’,IF(B1=LARGE(B1:B5,2),’△’IF(B1=LARGE(B1:B5,3),’□’,・・・以下省略

全文を見る
すると、全ての回答が全文表示されます。
noname#94613
noname#94613
回答No.2

出来ると思いますが、文書では少し表現し辛いです! COUNTIF文で答えを出したら、その結果について、 次にLARGE文で大小関係を判定し、○△□の記号を付加すれば良いです! COUNTIF文の結果が下記のB列とします!   A B C 1 a 7 ○  2 b 5 △ 3 c 4 □ 4 d 2 ◇ 5 e 3 ☆ B列の値が何番目に大きいかLARGE文で判定し、 IF文でそれと同一の値であったなら、 それに対応する記号をC列に付加するのです! C列のIF文は少し長くなりますが、たとえばC1は下記の式になります! IF(B1=(LARGE(B1:B5,1),’○’,IF(B1=(LARGE(B1:B5,2),’△’IF(B1=(LARGE(B1:B5,3),’□’,・・・以下省略

全文を見る
すると、全ての回答が全文表示されます。
noname#8445
noname#8445
回答No.1

分解してもいいですか? A1にデータ A列に          B列に   =mid($A$1,B2,1)     1   =mid($A$1,B3,1)     3 オートフィルコピーして countifで出す

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【エクセル】離れたセルのCOUNTIF関数

    こんにちは。 エクセルのCOUNTIF関数についての質問です。 各セルに以下のような数値が入っている表で・・・  A=10  B=00  C=20   D=30   E=00   F=40   G=50  AとCとEとGのセルを選択し、0以外のセルの個数を数えるとき COUNTIF関数で =COUNTIF(A,C,E,G,"<>0") という数式を立てたのですが、エラーとなってしまいました。 最終的には =((COUNTIF(A,"<>0")+(COUNTIF(C,"<>0")+(COUNTIF(E,"<>0")+((COUNTIF(G,"<>0")) という数式をたてて計算は出来たのですが、もっと簡単(?)な式はあったりするのでしょうか? ご存知の方がいらっしゃいましたら是非お教え下さい。

  • エクセルの条件範囲と合致したもの

    エクセルの条件範囲と合致したもの こんにちは。http://okwave.jp/qa/q5924759.htmlで質問していたのですが、 うまくいかないので、教えてください。 たとえば、同じシートで、 A1/B1/C1/D1・・・・・・←セル列 (スラッシュはセルだとします) A /1 /A /1 B /2 /B /2 D /3 /C E /4 /D /3 G /5 /E /4 I /6 /F / このように、列同士(A1の列とC1の列)が同じものがあった場合、A1の隣のセルであるB1のセルの数字をA4のセルに記載したい場合の数式を教えていただきたいです。D1に新たに追加されたものに関しては空白をしたいのです。 =IF(COUNTIF($A$1:$A$6,$C$1:$C$6)=0," ",IF(COUNTIF($A$1:$A$6,$C$1:$C$6)=1,B1)) この式を考えましたが、D1の列のDの部分の数字が"4"と記載されてしまい、本来なら"3"を 記載したいのですが、ずれてしまいます。 たぶん、条件の範囲のものとIFを合体させた数式になるのかなって思うのですが、 もし数式を教えていただければ幸いです。 何度も質問してすみません。。。よろしくお願いいたします。

  • エクセルでのランクの出し方

    以下のような表でランク関数を使うと、空白(計算式は入っています)を0と計算して順位をだしてしまいます。    A   B   C   D  E 1 山田  50   40  90  1 2 加藤 -75   20  -55  4 3 田中  25  -60  -45  3 4                  2 D列にB,Cの合計を求める式として、=IF(A1="","",SUM(B1:B2)という数式を入れています。この表のデータは2人~4人になる可能性があります。 E列には、=RANK(D1,D1:D4)という数式が入っています。 そうしますと、セルD4を0とみなすのか、E4に順位2が入ってしまいます。 このD4を空白とみなし、1位から3位までで表示する方法はありますでしょうか?

  • エクセルデータのカウント

    A1:E5にデータが入力してあります。(空白セルもあり) C列、D列、E列のどれか1つのセルにでもデータ(数値) が入っている行の数をカウントして、A6に表示する 方法を教えてください。 たとえばF列に、=COUNT(C1:E1)を計算する行を入れて、 A8で=COUNTIF(F1:F5,">=1")をすれば、できるのだと思うのですが、 そのために行を増やしたくないのです。

  • エクセル、任意の「行」だけを抽出したい。

    こんなことできますか? A1:F100のセル内にランダムに数字が入っています。 質問1) この中から 1行目→3行目→5行目と一つ飛ばしで入っているデータを抽出してH1:M100の範囲内に表示させるにはどのような操作をすればいいのでしょうか?関数とかで簡単に抽出表示させる技とかあればいいのですが・・・。 A1-B1-C1-D1-E1-F1 A2-B2-C2-D2-E2-F2 A3-B3-C3-D3-E3-F3 A4-B4-C4-D4-E4-F4 A5-B5-C5-D5-E5-F5 A6-B6-C6-D6-E6-F6 A7-B7-C7-D7-E7-F7 ・・・ A100-B100-C100-D100-E100-F100 の中から A1-B1-C1-D1-E1-F1 A3-B3-C3-D3-E3-F3 A5-B5-C5-D5-E5-F5 ・・・ を抽出して H1-I1-J1-K1-L1-M1 ・・・ H100-I100-J100-K100-L100-M100 の範囲内に表示させたいです。 質問2) 同様に、 1行目→4行目→7行目と二つ飛ばしで入っているデータを抽出してO1:T100の範囲内に表示させるにはどのような操作をすればいいのでしょうか?関数とかで簡単に抽出表示させる技とかあればいいのですが・・・。 ※ 説明がわかりにくいかもしれませんが、よろしくお願いします。

  • RANK関数について

    エクセルでこんな感じの表があります。 A1■B1■C1■D1■E1■F1■G1■H1 12■13■23■66■93■89■72■29 ランク関数をつかってそれぞれの順位を出したいのですがうまくいきません。 数式には=RANK(A1,A1,C1,E1,G1,0)と入力してあります。範囲を指定する際にA1,C1,E1,G1のような、連続していないセルを指定しては、計算できないものなのでしょうか? どなたかご教授ください

  • エクセルで、範囲内の該当セルを探してその一つ下のセルの値を全て加算した

    エクセルで、範囲内の該当セルを探してその一つ下のセルの値を全て加算したいのです。どうすればよいですか? 例: _A, _B, _C, _A, _B, _D, _A, _F 20, _5, 40, 30, 20, 80, 40, 30 という範囲があった時に 項目 _A, _B, _C, _D, _E, _F 合計 90, 25, _0, 80, _0, 30 という集計がおこないたいのです。 データ量が結構な数ありますので、手動は避けたいのです。 よろしくお願いします。

  • エクセルの関数(条件付け)について

    エクセルについて質問させてください。 説明がわかりにくかったらすみません。 A行のセルに、品名(文字列) B行のセルに、価格(数値) C行のセルに、チェック1(1と入力) と入力してある状態で、 D行・E行・F行のセルに下記のような式を表示させたいのですが、 どのような関数を組めばよいでしょうか? 表示させたいのは、 D行のセルに、チェック2 …「Cに1と入力されていなかったら2と表示させる」式 E行のセルに、価格1  …「Cに1と入力されている場合のみBセルの数値を表示させる」式 F行のセルに、価格2 …Fのセルには「Dに2と表示されている場合のみBセルの数値を表示させる」式 になります。 宜しくお願いいたします。

  • エクセルでDBみたいな使い方

    エクセルでDBみたいな使い方を希望しています。A,B,C,D,E,Fの6つの項目があり、その中で利用してない項目を出力したいと考えます。 具体的には、セル1~6に、A,B,C,D,E,Fを順に割り当てていきます。割り当てられていない項目を、「未割当セル」にリアルタイム表示したいと考えます。 たとえば、 (1)「セル1」にBを割りあて・・・・「未割当セル」には「A,C,D,E,F」の5つを表示 (2)「セル2」にEを割りあて・・・・「未割当セル」には「A,C,D,F」の4つを表示 (3)「セル3」にCを割りあて・・・・「未割当セル」には「A,D,F」の3つを表示 このような感じです。アドバイスよろしくお願いします。

  • エクセル2000の計算式の範囲の固定

    簡単な計算式の入力(範囲指定)がしたいのでわかる方 ご教授ください。 以下のようなデータがあります。    A列 B列  1 い支店 15  2 ろ支店 6 3 は支店 80 4 に支店 112 5 ほ支店 15 6 へ支店 6 7 と支店 32 以下1400行ほど これらのデータを C列には「セルC1」から1~1400という数字を入力し D列に計算式(B2:B1400,C2)を入れました。 コピー&ペーストをするとD2は=COUNTIF(B2:B1400,C2) D3は=COUNTIF(B3:B1401,C3)、D4は=COUNTIF(B4:B1402,C4)・・・となり、 本来入れたい式D3=COUNTIF(B2:B1400,C3)、D4=COUNTIF(B2:B1400,C4)・・・とは範囲の部分が一つずつずれてしまいます。 この計算式の範囲「B2:B1400」を固定したままにすることはできないのでしょうか。 教えてください。

専門家に質問してみよう