年齢を年代にするには、=FLOOR(年齢,10) と書きます。24 なら 20、35 なら 30 のように、10 歳刻みで切り捨てた数字になります。年代ごとの人数は、COUNTIFS 関数で「20 以上 30 未満」のように数えます。
この記事では、番号・年齢・購入額の表を使って、年代の出し方、「20代」と表示する方法、年代別の人数と平均の出し方を、実際の Excel で確かめた結果で説明します。
年代を出す式と年代別に集計する式
年代 =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)

24 歳は 20、35 歳は 30、41 歳は 40、19 歳は 10、52 歳は 50 になりました。
=INT(B2/10)*10 と書いても同じ結果です(下の検証)。FLOOR のくわしい使い方は FLOOR.MATH関数の使い方で説明しています。
2. 「20代」のように表示する
1 の式のうしろに &"代" を付けて、文字をつなげます。
=FLOOR(B2,10)&"代"

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)

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)

平均購入額は、10 代 2,000 円、20 代 3,500 円、30 代 6,000 円、40 代 8,000 円、50 代 6,000 円でした。
合計を出したいときは、AVERAGEIFS を SUMIFS に変えるだけです。20 代の合計は 7,000 円になりました(下の検証)。
【実機で検証】年代別の集計でつまずくところ

| ためしたこと | 式 | 結果 |
|---|---|---|
| INT で年代を出す(25 歳) | =INT(25/10)*10 | 20 |
| 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 に「性別の範囲, “男”」のような条件を足します。アンケートの集計の流れは アンケートを集計する方法で説明しています。
