- ベストアンサー
Excelで生年月日の集計
Exeslの列に生年月日が19760709のように8桁の文字列で入っています。これを年代別(10代○名、20代○名、30○代○名、・・・)に集計したいのですが、並べ替えまではしてみたもののその後簡単に集計する方法を教えて下さい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
chunchan様、はじめまして。 以下の作業をまとめてやる方法もありますが、 分かりやすくするため、作業列を作りながらワンステップずつ分けて説明します。 (1) まず、生年月日が文字列で入ってますので、これを日付形式に変換する作業が必要ですね。 A1に生年月日が19760709とあるとしますと、 B1に次の数式を入れますと、日付形式に変換できます。 =DATE(LEFT(A1,4),MID(A1,5,2),MID(A1,7,2)) 年、月、日に対応する文字をそれぞれ取り出して、Date関数で日付に変換しています。 この数式を、2行目以降のすべての行にコピーしてください。 (2) つぎに、「20代」「30代」などの年代を求める必要があります。 B1に先程生年月日を求めた数式がありますので、これを基にして、 C1セルに数式を入力します。 =ROUNDDOWN(YEAR(TODAY()-B1)-1900,-1)&"代" いくつかの関数が組合わさっていますので、順に説明します。 まず今日の日付(TODAY)から、B1の生年月日を引いた日付の、 「年」の部分をYEAR関数で求めています。 このままでは、仕様により1900年代の年表示になってしまいますので、1900を引き算しています。 そして、ROUNDDOWN関数で、10の位で丸める処理をしています。 例では本来26歳ですが、これが「20」となるようにします。 さらに、単位の「代」を、&で連結しています。 この数式を、2行目以降のすべての行にコピーしてください。 (3) さいごに、これを集計する関数です。 たとえば、データが10行目まであったとしたら、 C1からC10までに「20代」などのデータが入ったと思います。 そこで、集計結果を表示したいセルに、次の数式を入れます。 =COUNTIF($C$1:$C$10,"20代")&"名" =COUNTIF($C$1:$C$10,"30代")&"名" =COUNTIF($C$1:$C$10,"40代")&"名" これで、年代ごとの人数が集計できます。
その他の回答 (3)
- dejiji-
- ベストアンサー率38% (327/858)
A1に19860709と入っていて、B1に =DATE(LEFT(A1,4),MID(A1,5,2),MID(A1,7,2)) で日付に変換後、C1に =FLOOR((DATEDIF(B1,NOW(),"y")),10) で10歳ごとに切り捨てられた年齢が出るので、後は必要なセルに =COUNTIF($C$1:$C$7,20) とすれば、集計できます。(最後の20をそれぞれ年齢に分け変えて下さい。)$C$1:$C$7は、C列の範囲を指定して下さい。列全部が同じ形式であれば$C:$Cでも良いですが。 この場合、開くたびに誕生日が来て、年代が変わると集計値が変わることが有ります。また、日付(パソコンの時刻設定)が狂っていると、正しい集計が出来なくなる可能性も有ります。
- tizzy
- ベストアンサー率51% (115/224)
年単位で(今年何歳なのか)集計するのか、 月日単位(今現在何歳なのか)で集計するのか ということでも方法は違ってくると思います。 一番簡単な方法は「ツール」>>「分析ツール」 >>「ヒストグラム」を利用する方法だと思います。 この項目が「ツール」に無い場合は 「ツール」>>「アドイン」で「分析ツール」 をインストールしてください。 利用方法は以下のURLから。 不明な点がありましたらご遠慮なくお尋ねください。 ご参考までに。
- taknt
- ベストアンサー率19% (1556/7783)
たとえば A列に1行から10行まで生年月日が入ってるとします。 20年前までに生まれた人の数から 10年前に生まれた人の数を引けば 10代の数がでるでしょう。 =COUNTIF(A1:A10,">19830709") - COUNTIF(A1:A10,">19930709") 20年前、10年前は、計算して 入れてください。 同じようにして 20代、30代と出してみてください。