• ベストアンサー

エクセル関数で一番多いの次に多いの…と数えたいです。

日に何回もお世話になります。 今A1の列にアルファベットが入っています。それを一番多いのは何で何個。次に多いのは何で何個と数えたいです。 COUNTを使っても数しか数えてくれません。ご教授ください。    A1     b    b    b   c  c    a 1番 b 個数 3 2番 c 個数 2 3番 a 個数 1

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

  B C D 1 アルファベット 個数 順位 2 a 1 3 3 b 3 1 4 c 2 2 C2=COUTIF(A:A,B2) C3=COUTIF(A:A,B3) C4=COUTIF(A:A,B4) D2=RANK(C2,$C$2:$C$4) D3=RANK(C3,$C$2:$C$4) D4=RANK(C4,$C$2:$C$4) こういう形ならできますが...

tasuketegoo
質問者

お礼

んー。なかなか複雑になってしまうのですね。ありがとうございました。

その他の回答 (1)

noname#29107
noname#29107
回答No.2

この通りのことを関数だけでやろうとすると、無茶苦茶複雑な式になってしまいます。本当にいいのでしょうか? #1の回答のような関数で個数を出し、コピー、値貼り付けしてから並び替える方が、簡単です。 一応、関数で作ってみましたが・・・・ D列に個数、C列にアルファベットを出します。1行目は見出しとします。(ちょっと1列にアルファベットと個数を出すのは作業しにくいので、変更させてもらいました。) D列から入力します。 D2: =LARGE(COUNTIF($A$1:$A$100,{"a","b","c","d","e","f","g","h","I","j","k","l", "m","n","o","p","q","r","s","t","u","v","w","x","y","z"}),ROW(D1)) Enterで入力するのではなく、Ctrl+Shift+Enterで配列数式にします。下にコピーします。 C2: =MID("abcdefghijklmnopqrstuvwxyz",LARGE((COUNTIF($A$1:$A$100,{"a","b","c","d", "e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w", "x","y","z"})=D2)*{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22, 23,24,25,26},COUNTIF(D$2:D2,D2)),1) こちらもEnterで入力するのではなく、Ctrl+Shift+Enterで配列数式にします。下にコピーします。

tasuketegoo
質問者

お礼

ありがとうございました。やはりかなり複雑になってしまうのですね。今後とも宜しくお願いします。

関連するQ&A