• ベストアンサー

Excel 性別毎の年代別件数の求め方

Excelで、性別毎の年代別件数を求めたいのですが、良い方法が見つかりません。 皆様のお力をお貸し下さい。 業務で、お客様の統計を採るよう命じられました。 A列に性別(女性or男性)、B列に年齢(18~99)が入力されています。 性別はCOUNTIF関数を使い、女性と男性の件数を出しました。 年齢はFREQUENCY関数を使い、年代(10代~90代)別に件数を出しました。 今度は、性別毎に年代別件数を求めるよう指示されたのですが 一日考えても良い方法が見つかりません。 どのようにすれば、性別毎の年代別件数を求めることが出来るのでしょうか? 利用月毎に複数のファイルに分かれており、集計用のファイルを作成し 全てのファイルの合計を集計するよう指示されています。 (利用月毎のファイルは12ヶ月分あります・・・) Sheet1に性別と年齢を入力し、Sheet2でCOUNTIF関数、FREQUENCY関数を組み集計しています。 良いお知恵がありましたら、どうぞ御教授下さい。

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

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

単純なのは「データ」「ピボットテーブル」で年齢をグループ化する方法ですね。 関数で行う場合は =SUMPRODUCT(($A$2:$A$100="男")*($B$2:$B$100>=18)*($B$2:$B$100<20)) 上記で18~19歳の男の数が集計できます。 性別と年齢の上下をセル参照すれば楽だと思いますよ。

noname#25246
質問者

お礼

お礼が遅くなりまして、申し訳ございません。 昨日、回答をいただきましてから早速作業し、今朝一番で提出することが出来ました。 SUMPRODUCT関数は使ったことがなかったので 当社のシステム担当も「すごい!」と感心しておりました。 (昨日は、当社のシステム担当も巻き込んで悩んでおりましたので・・・) 早速の回答、本当にありがとうございました。

その他の回答 (4)

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

ビジネスでは、絶対ピボットテーブル利用です。 関数は個別に考えないといけないことが多く、考えるのに時間がかかります。考えて判らないーOKWAVEに質問するー1日待つー理解してー自分の場合に式を修正する、結構時間がかかり、簡単なもの以外は実用的ではないと思います。 12か月分を1つのシートに手作業で貼り付け データ範囲を見出しも含め範囲指定 データーピボット レイアウトで行へ年齢、列へ男女、データへ計数をD&D 完了で表ができて 「性別」(間違いじゃない)のところで、グループと詳細の表示-グループ化 先頭の値10、末尾の値100、単位10 合計 / 計数 性別 年齢 20-29 30-39 40-49 50-59 60-70 総計 女 6 5 10 21 男 4 1 3 7 15 総計 4 6 6 13 7 36 のような表が瞬時にできます。

noname#25246
質問者

お礼

ビポットテーブルは使ったことがなかったのですが 資料を提出後、試してみたら、確かに関数を使うより楽そうですね。 今回は、皆さんに回答いただいた関数で乗り切りましたが これからはビポットテーブルを活用していきたいと思います。 早速の回答、ありがとうございました。

noname#204879
noname#204879
回答No.4

  E  F  G 1 年代 男 女 2  20  3  7 3  30 20 32 4  40 34 53 5  50 96 45 6  60 66 26 7  70 50 17 8  80  8  6 9  90  1  1 F2: =SUMPRODUCT(($A$2:$A$500=F$1)*($B$2:$B$500>=$E2)*($B$2:$B$500<$E2+10))

noname#25246
質問者

お礼

例を挙げて回答いただき、大変わかりやすかったです。 今朝一番で集計し、提出することができました。 早速の回答、本当にありがとうございました。

  • 134
  • ベストアンサー率27% (162/600)
回答No.3

失礼しました。 セルの情報はありましたね。見落としていました。 mshr1962さんの回答で できますね。 =sumproduct(($a$1:$a$99="男")*(int($B$1:$B$99/10)=1)) あるいは、 =COUNT(IF(($A$1:$A$99="男")*(INT($B$1:$B$99/10)=1),$B$1:$B$99,"")) として、Shift+Ctrlの状態でEnter という方法もありそうです。

noname#25246
質問者

お礼

お礼が遅くなりまして、申し訳ございません。 昨日、回答をいただきましてから早速作業し、今朝一番で提出することが出来ました。 SUMPRODUCT関数は使ったことがなかったので 当社のシステム担当も「すごい!」と感心しておりました。 (昨日は、当社のシステム担当も巻き込んで悩んでおりましたので・・・) COUNT関数でも集計できそうですね。 早速の回答、本当にありがとうございました。

  • 134
  • ベストアンサー率27% (162/600)
回答No.2

件数を数えるだけならば、 =sumproduct(([範囲]="男")*(int([範囲]/10)=1)) のように、してみてはいかがでしょうか。  (上の例は、10代男性) なお、 =count(if((条件1)*(条件2),範囲,"")) と入力して、Shift+Ctrlの状態で、Enterを押す配列関数の活用という手段もあります。 どのセルにどんなデータがあるのかが不明なので、具体的に記述することができませんけど。