- ベストアンサー
Excelでランク付け
あるデータ範囲のなかに特定の言葉が何回出てくるかはCOUNTIFとかで分かりますよね? では、例えば・・・ a,a,b,c,d,b,f,e,a,c,b,d,d,d,d・・・というように並んでいるときに、 一番多いのは○、二番目は△、三番目は□・・・と出すことは出来るでしょうか? もちろん一番、二番・・・は違うセルでOKです。 知っている方いましたらお願いします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
#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列をキーとする降順。 結果上記のとおり。
その他の回答 (7)
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))))
お礼
お礼が大変遅くなって申し訳ありませんでした。 モデムが壊れてしまいネットに繋がる環境がなくなってしまったため返信できませんでした。 本当に申し訳ありません。 大変親切な回答でとても感謝しています。 本当にありがとうございました。
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/17069)
>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の横列セルに○を出すのでしょうか。 問題が曖昧な気がします。
補足
失礼しました。 一番多いのは○・・・・と書いたために誤解が多かったようです。 >○△などは具体的に一番多いのはd(5回)、2番目に多いのがb(3回)などと出すのでしょうか。 おっしゃる通りで、 一番多い物:d(5回) 二番目に多い物:b(3回) 三番目に多い物: ・ ・ ・ というふうに出したいのです。 よろしくお願いします。
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),’□’,・・・以下省略
ANo.2です! 誠に申し訳ありません! 慌てて、最後のC列の式のカッコの位置を誤りました! LARGEの直前のカッコ「(」は不要でした! 正しくは、下記です! IF(B1=LARGE(B1:B5,1),’○’,IF(B1=LARGE(B1:B5,2),’△’IF(B1=LARGE(B1:B5,3),’□’,・・・以下省略
出来ると思いますが、文書では少し表現し辛いです! 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),’□’,・・・以下省略
分解してもいいですか? A1にデータ A列に B列に =mid($A$1,B2,1) 1 =mid($A$1,B3,1) 3 オートフィルコピーして countifで出す
お礼
お礼が大変遅くなって申し訳ありませんでした。 モデムが壊れてしまいネットに繋がる環境がなくなってしまったため返信できませんでした。 本当に申し訳ありません。 大変親切な回答でとても感謝しています。 本当にありがとうございました。