• 締切済み

エクセル初心者です。

エクセルシートで指定したセルの中から一番多い件数を順位を付けて表示したいのですが、 どの関数を使ってよいのか分かりません。 例えば、リンゴ      ナシ      リンゴ      ミカン      リンゴ      ミカン と並んだ中で どれが何件で1番 どれが何件で2番 ・・3番と集計したいのです。 関数にお詳しい方教えて下さい。お願いします。  

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 回答は出ていますので、参考程度で・・・ 仮に同順位があっても表示できるようにしてみました。 ↓の画像のように作業用の列を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)
回答No.2

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)),""))))

回答No.1

関数でリストを作るのは難しいのでリストがあらかじめある場合のみ 関数COUNTIFで個数を数える 関数RANKで順位を付ける リストがないならピボットテーブルが容易だと思います 項目名を「果物」とします データ - ピボットテーブルとピボットグラフレポート 行フィールドとデータフィールドともに[果物]をドラッグ&ドロップ 作成後、集計結果(データフィールド)のうちの1つのセルを選択して、降順で並べ替え 添付図はウィザードの3/3で[レイアウト]をクリックしている

sekuri
質問者

お礼

大変参考になりました。 ありがとうございます。

関連するQ&A