- 締切済み
エクセル初心者です。
エクセルシートで指定したセルの中から一番多い件数を順位を付けて表示したいのですが、 どの関数を使ってよいのか分かりません。 例えば、リンゴ ナシ リンゴ ミカン リンゴ ミカン と並んだ中で どれが何件で1番 どれが何件で2番 ・・3番と集計したいのです。 関数にお詳しい方教えて下さい。お願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 回答は出ていますので、参考程度で・・・ 仮に同順位があっても表示できるようにしてみました。 ↓の画像のように作業用の列を2列設けています。 作業列1のB2セルに =IF(COUNTIF($A$2:A2,A2)=1,COUNTIF(A:A,A2),"") 作業列2のC2セルに =IF(B2="","",RANK(B2,B:B)) という数式を入れ、B2・C2セルを範囲指定しC2セルのフィルハンドルでオートフィルでずぃ~~~!っと下へコピーしておきます。 そして、結果のE2セル(セルの表示形式はユーザー定義から 0位 としておきます)は =IF(COUNT(C:C)<ROW(A1),"",SMALL(C:C,ROW(A1))) F2セルは =IF(E2="","",INDEX(A$1:A$1000,SMALL(IF($C$1:$C$1000=$E2,ROW($A$1:$A$1000)),COUNTIF($E$2:E2,E2)))) このF2セルは配列数式になってしまいますので、 この画面からF2セルにコピー&ペースト → 数式バー内で一度クリック → 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これを隣のG2セルまでオートフィルでコピー! G2セルの表示形式はユーザー定義から 0件 としておきます。 最後にE2~G2セルを範囲指定しG2セルのフィルハンドルで下へコピーすると画像のような感じになります。 参考になれば良いのですが・・・m(__)m
- KURUMITO
- ベストアンサー率42% (1835/4283)
A2セルから下方に品名が入力されているとします。 作業列としてB2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(A$2:A2,A2)=1,COUNTIF(A:A,A2),"") お求めの表をD,E,F列に表示させるとしてD1セルには順位、E1セルには品名、F1セルには件数と入力します。 D2セルには次の式を入力して横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(ROW(A1)>MAX($B:$B),"",IF(COLUMN(A1)=1,ROW(A1),IF(COLUMN(A1)=2,INDEX($A:$A,MATCH(LARGE($B:$B,ROW(A1)),$B:$B,0)),IF(COLUMN(A1)=3,COUNTIF($A:$A,OFFSET(D2,0,-1)),""))))
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
お礼
大変参考になりました。 ありがとうございます。