• ベストアンサー

エクセルで年代別の中からの性別人数を抽出

エクセル年代別に男女の人数を抽出したいのですがどうすれば いいのでしょうか? データベースにはリストがありますが どのような式を入力すればいいのでしょうか

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

もう少し、読み手の立場になって質問されたらいかがでしょう? どんな形式でリストを持っているのか書かないと普通、答えられないですよ。

good-sun
質問者

お礼

スイマセン追加です =COUNTIF(sheet1!F2:F1000,"<=5")-COUNTIF(sheet1!F2:F1000,"<=0") このように年齢は抽出できたのですが性別も年代別で抽出したいのです。 よろしくお願いします

good-sun
質問者

補足

スイマセン 【Sheet1】   A    B     C    D    E   F 1 コード  名前1  名前2  性別  誕生日 年齢 2  001  ●●●  ●●●  男  S50.1.1 32 3  002  ●●●  ●●●  女  S53.1.1 29 4  003  ●●●  ●●●  男  S53.1.1 29 5  004  ●●●  ●●●  男  S40.1.1 42 6  005  ●●●  ●●●  女  S63.1.1 19 7  006  ●●●  ●●●  男  S33.1.1 59 データベースがあります。 上記の中から年齢別に抽出したいのです 【Sheet2】 A   B C D 合計人数  男   女 1~5(才)    20   10   10 6~10(才)    50   25   25 11~15(才)   2500  1500  1000 16~20(才)   5000  1000  4000 21~25(才)   5000  1000  4000 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*--*-*-*-* 上記の様なフォーマットに表示したいのですが どのようにすればよいのでしょうか?

その他の回答 (5)

  • qaaq
  • ベストアンサー率36% (146/404)
回答No.6

#5のqaaqです。 Ans5はイマイチなので、下記のように修正します。 ------ =SUM(IF((D2:D11="男")*(F2:F11>=6)*(F2:F11<=10),1)) この式を『配列として入力』すると、6~10才の男の集計が得られます。 #5との違いは、IF文の使い方です。 配列の入力は、式を入力した後に「Shift+Ctrl+Return」です。 表示には{} が付きます。 例えば、『6~10才の男で名字(名前1)が田中』の『人数集計』なら、 {=SUM(IF((D2:D11="男")*(F2:F11>=6)*(F2:F11<=10)*(B2:B11="田中"),1)} になり、'*(B2:B11="田中")'を追加するだけで集計ができます。 また、『6~10才の男で名字(名前1)が田中以外』の『年齢平均値』なら、 {=AVERAGE(IF((D2:D11="男")*(F2:F11>=6)*(F2:F11<=10)*(B2:B11<>"田中"),F2:F11))} でいけます。

good-sun
質問者

お礼

お返事遅くなりましてすいませんすごく参考になりました ありがとうございました。

  • qaaq
  • ベストアンサー率36% (146/404)
回答No.5

=SUM(IF(D2:D11="男",1)*IF(F2:F11>=6,1)*IF(F2:F11<=10,1)) この式を『配列として入力』すると、6~10才の男の集計が得られます。 配列の入力は、式を入力した後に「Shift+Ctrl+Return」です。 表示は、 『{=SUM(IF(D2:D11="男",1)*IF(F2:F11>=6,1)*IF(F2:F11<=10,1))}』 になり {} が付きます。 式の配列は、書籍等でもあまり見かけないですが、覚えると集計が非常に楽なので若干説明します。 {=SUM( ............... 合計します  IF(D2:D7="男",1) ... D列が男だったら”1”  * .................. AND  IF(F2:F7>=6,1) ...... F列が6以上なら”1”  * .................. AND  IF(F2:F7<=10,1) .... F列が10以下なら”1” )} つまり、6~10才の男は 1*1*1=1 となり、それ以外は必ず"0"になります。 これを範囲内の各行で計算し、最後に合計(sum)します。 何が楽かといえば、条件式が素直な事と変更が簡単にできる事で、 例えば、『6~10才の男で名字(名前1)が田中』の集計なら、 {=SUM(IF(D2:D11="男",1)*IF(F2:F11>=6,1)*IF(F2:F11<=10,1)*if(B2:B11="田中",1))} になり、'*if(B2:B11="田中",1)'を追加するだけで集計ができます。 他の関数では、途中集計用の列が必要になったり、条件式が複雑になったりします。 色々やってみて下さい。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

#1です。 そういう配置であれば、例えば男で21~25(才)なら =SUMPRODUCT((D2:D1000="男")*(F2:F1000<=25)-(D2:D1000="男")*(F2:F1000<21)) で求められますね。

  • newbranch
  • ベストアンサー率30% (319/1053)
回答No.3

データベースのリストの人数を抽出したいセル(例) a1~a100 名前 B1~B100 男 C1~C100 女         B101=SUMIF(A1:C100,"男",B1:B100) C101=SUMIF(A1:C100," 女 ",C1:C100) 但し、B列には男、C列には女の表記が必要です。

  • pamsd
  • ベストアンサー率18% (39/209)
回答No.2

countifを組み合わせて使って集計すればいいですよ。 たとえば 20代の人の場合 countif(>=20才以上) - countif(>=30才以上) 20才以上の人数から 30才以上の人数を引けば 20代の人数が出ます。 実際のcountifの使い方は ヘルプを参照してください。

関連するQ&A