• ベストアンサー

年齢別集計

エクセルの質問です。 数千人分の顧客データを集計して年齢別に人数を数えたいと思います。とある書籍によると、DATEDIF関数を利用して、 =DATEDIF(C1,TODAY(),"Y")&"歳"  ※セルC1に生年月日が入力されています とすれば、年齢は出てきます。 ここで疑問なのは 1.最後の「&"歳"」の記述がないときには年齢が出てこない。単に数値だけを出すにはどうすればよいのか? 2.10~19歳、20~29歳、のように範囲を持たせて人数を集計・カウントするにはどうすればよいのか? です。 よろしくお願いします。

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

  • ベストアンサー
  • keirika
  • ベストアンサー率42% (279/658)
回答No.3

WEB上のデータをSheet1に貼り付け、生年月日がC列にあると仮定します。 Sheet2のA1に =IF(Sheet1!C1="","",DATEDIF(Sheet1!C1,TODAY(),"Y")) を入力し、下方向に最大65536までコピーします。 人数はSheet2のA列の以外のセルに 10代=COUNTIF(A:A,10) を入力しておきます。 上記の方法であれば、データをSheet1に貼り付ければ、自動的にSheet2にその結果が出来上がります。 よければ、お試しください

その他の回答 (2)

  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

1. どのように表示されているのかが不明の為、想像するしかないので、とりあえず考えられることを書きます。 『&"歳"』の記述をとってしまった後、そのセルを右クリックし、セルの書式設定を選択し、表示形式を『標準』に変えてみてください 2. 10~19歳などの人数をカウントする場合は、次の式を入れてください C列に生年月日が入力されていて、D列に年齢が求められていると仮定した場合 E1セルに=FLOOR(D1,10)を入力し、下方向へコピーします。 そうしますと、10~19は10に20~29は20になります 人数をカウントする式は 10代=COUNTIF(E:E,10) 20代=COUNTIF(E:E,20) 30代=COUNTIF(E:E,30) ・ ・ 100代=COUNTIF(E:E,100) で求められます。ただしE列にこの式を入れないでください。 よければ、一度お試しください。

partita
質問者

お礼

1.は私のミスだったかもしれません。解決しました。お騒がせしました。 2.につきまして、補足です。 顧客データはWEB上からダウンロードするのですが、それをエクセルに貼り付けたときに、別シートで集計が出来上がるような自動計算を行いたいのです。 生年月日から年齢をそれぞれ計算でだすことは1.のようにできますし、その結果を集計することもできます。しかし、私は、年齢を出す時に一度列を追加する方法しか思いつきません。 この年齢別集計は素人でもできるようにしたいのです。つまり、列の追加、式の挿入、オートフィルを行うことなく、ダウンロードデータを指定のシートにコピペするだけで別シートに集計表ができあがっているようにしたいのです。 わかりにくかったらすみません。

noname#204879
noname#204879
回答No.1

先ず、式 =DATEDIF(C1,TODAY(),"Y")&"歳" を =DATEDIF(C1,TODAY(),"Y") に変更して、“ユーザー定義”で 0"歳" と書式設定したら如何?という提案をしておきます。 1.「年齢が出てこない」とはどういう意味ですか?   また「単に数値だけを出すには」「&"歳"」の記述   をなしにすれば好いと思うのですが、何だか支離   滅裂な質問に思えます。 2.=FREQUENCY()関数を使えば?

partita
質問者

お礼

1.「年齢が出てこない」→出てきました。私の入力が間違っていたかもしれません。すみませんでした。 2.FREQUENCY関数は試してみます。結果をご報告します。

関連するQ&A