エクセルで年代別に集計する方法|年齢を10歳刻みで20代・30代に分けて人数・平均を出す【実機で解説】

エクセルで年代別に集計する方法|年齢を10歳刻みで20代・30代に分けて人数・平均を出す【実機で解説】

年齢を年代にするには、=FLOOR(年齢,10) と書きます。24 なら 20、35 なら 30 のように、10 歳刻みで切り捨てた数字になります。年代ごとの人数は、COUNTIFS 関数で「20 以上 30 未満」のように数えます。

この記事では、番号・年齢・購入額の表を使って、年代の出し方、「20代」と表示する方法、年代別の人数と平均の出し方を、実際の Excel で確かめた結果で説明します。

練習用Excelファイル(無料ダウンロード)
番号・年齢・購入額の表に、この記事の年代別の集計の式を入れた練習ファイルです。年齢を書き換えると集計が変わります。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
目次

年代を出す式と年代別に集計する式

年代          =FLOOR(年齢, 10)
年代別の人数  =COUNTIFS(年齢の範囲, ">="&年代, 年齢の範囲, "<"&年代+10)
年代別の平均  =AVERAGEIFS(平均する範囲, 年齢の範囲, ">="&年代, 年齢の範囲, "<"&年代+10)
部品意味
FLOOR(年齢,10)年齢を 10 の倍数に切り捨てる(24 → 20)
“>=”&年代「年代の数字以上」という条件。年代が 20 なら「20 以上」
“<“&年代+10「年代+10 未満」という条件。年代が 20 なら「30 未満」
年齢の範囲年齢が入っている列。同じ範囲を 2 回指定して、以上と未満の 2 つの条件にする

集計の表は、E 列に 10・20・30…と年代の数字を並べておきます。式がこの数字を見て数えるので、「20代」のような文字ではなく数字で入れます。

1. 年齢から年代を出す(10 歳刻み)

I2 に式を入れて、下へコピーします。年齢(B 列)を 10 の倍数に切り捨てます。

=FLOOR(B2,10)
エクセルのFLOOR関数で年齢を10歳刻みに切り捨てて年代を求めた画面
エクセルのFLOOR関数で年齢を10歳刻みに切り捨てて年代を求めた画面

24 歳は 20、35 歳は 30、41 歳は 40、19 歳は 10、52 歳は 50 になりました。

=INT(B2/10)*10 と書いても同じ結果です(下の検証)。FLOOR のくわしい使い方は FLOOR.MATH関数の使い方で説明しています。

2. 「20代」のように表示する

1 の式のうしろに &"代" を付けて、文字をつなげます。

=FLOOR(B2,10)&"代"
エクセルのFLOOR関数の結果に代の文字をつなげて20代のように年代を表示した画面
エクセルのFLOOR関数の結果に代の文字をつなげて20代のように年代を表示した画面

24 歳は「20代」、35 歳は「30代」、19 歳は「10代」と表示されました。

この列は文字になります。名簿に年代の列を足したいときに使い、人数の集計には次の COUNTIFS を使うと、年代の列を作らなくても数えられます。

3. 年代ごとの人数を数える(COUNTIFS)

E 列に年代の数字(10〜50)を並べ、「その数字以上」「その数字+10 未満」の 2 つの条件で数えます。年齢の範囲は $ で固定して、下へコピーします。

=COUNTIFS($B$2:$B$8,">="&E2,$B$2:$B$8,"<"&E2+10)
エクセルのCOUNTIFS関数で年齢が20以上30未満のように年代ごとの人数を数えた画面
エクセルのCOUNTIFS関数で年齢が20以上30未満のように年代ごとの人数を数えた画面

10 代 1 人、20 代 2 人、30 代 2 人、40 代 1 人、50 代 1 人で、合わせて 7 人になりました。表の人数と同じなので、数えもれがないことも分かります。

「以上・未満」の条件の書き方は 「○以上○未満」の個数を数える方法で説明しています。

4. 年代ごとの平均・合計を出す(AVERAGEIFS・SUMIFS)

AVERAGEIFS 関数は、最初に平均する範囲(購入額)を書き、そのあとに 3 と同じ 2 つの条件を書きます。

=AVERAGEIFS($C$2:$C$8,$B$2:$B$8,">="&E2,$B$2:$B$8,"<"&E2+10)
エクセルのAVERAGEIFS関数で年代ごとの購入額の平均を求めた画面
エクセルのAVERAGEIFS関数で年代ごとの購入額の平均を求めた画面

平均購入額は、10 代 2,000 円、20 代 3,500 円、30 代 6,000 円、40 代 8,000 円、50 代 6,000 円でした。

合計を出したいときは、AVERAGEIFS を SUMIFS に変えるだけです。20 代の合計は 7,000 円になりました(下の検証)。

【実機で検証】年代別の集計でつまずくところ

エクセルの年代別の集計で10歳未満や空欄やだれもいない年代を指定したときの結果を確かめた画面
エクセルの年代別の集計で10歳未満や空欄やだれもいない年代を指定したときの結果を確かめた画面
ためしたこと式結果
INT で年代を出す(25 歳)=INT(25/10)*1020
10 歳未満(8 歳)に “代” を付けた=FLOOR(8,10)&"代"0代
10 歳未満は別の表示にする=IF(8<10,"10歳未満",FLOOR(8,10)&"代")10歳未満
年齢が空欄(A12)=FLOOR(A12,10)&"代"0代
だれもいない年代(60 代)の平均=AVERAGEIFS(年代別集計!C2:C8,年代別集計!B2:B8,">=60",年代別集計!B2:B8,"<70")#DIV/0!
20 代の購入額の合計(SUMIFS)=SUMIFS(年代別集計!C2:C8,年代別集計!B2:B8,">=20",年代別集計!B2:B8,"<30")7,000
未満を「以下」にしてしまった(20 以上 30 以下)=COUNTIFS(A14:A16,">=20",A14:A16,"<=30")3

25 歳を INT で計算しても 20 で、FLOOR と同じ考え方で年代が出ます。

10 歳未満の 8 歳に「代」を付けると「0代」に、年齢が空欄のセルでも「0代」になりました。IF で分けると「10歳未満」のように表示できます。空欄の行があるときも、=IF(B2="","",FLOOR(B2,10)&"代") のように IF で包みます。

だれもいない 60 代の平均は #DIV/0! でした。人数が 0 の年代があるときは、=IFERROR(平均の式,"") で空欄にできます。20 代の購入額の合計は 7,000 円です。

条件の「未満」を「以下」(<=30)にすると、20・29・30 歳の 3 人が全部数えられて 3 人になりました。30 歳が 20 代と 30 代の両方に入ってしまうので、上の区切りは <(未満)にします。

よくある質問

生年月日から年代を出すには?

先に年齢を出してから、FLOOR で年代にします。年齢の出し方は 生年月日から年齢を計算する方法で説明しています。

5 歳刻みで分けるには?

FLOOR の 2 つ目を 5 にして =FLOOR(年齢,5) とします。集計の式は、年代+10 の所を +5 に変えます。

男女別と年代別を組み合わせて数えたいです。

COUNTIFS に「性別の範囲, “男”」のような条件を足します。アンケートの集計の流れは アンケートを集計する方法で説明しています。

練習用Excelファイル(無料ダウンロード)
この記事の例をまとめた練習ファイルです。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

あわせて読みたい:関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次