FLOOR関数が一番!年齢データから年代データを作成する

FLOOR関数が一番!年齢データから年代データを作成する

ExcelのFLOOR関数を用いて、

年齢データから年代データを作成する方法は、

一般的に使用されるIF関数やINT関数、ROUNDDOWN関数と比べて、
(他の関数でも代用可能ですが、代表例です)

式が短くて理解しやすく、基準値を変更するだけで簡単に年代の刻みを変えられる

というメリットがあります。

各関数の構文解説は、以下で紹介しています。
INT関数とROUNDDOWN関数は、いずれ取り上げる予定です。

本記事は、FLOOR関数だけを分かっていれば問題ないです。

 5歳刻みと10歳刻みの年代データの作成

FLOOR関数の簡単なフォローアップ

=FLOOR(数値, 基準値)

英語の「FLOOR(床)」に由来しています。
関数の構文は以下です。

関数名のFLOORは、与えられた数値を切り捨てるという概念に由来しています。

その数値を最も近い下の基準値の倍数(つまり、数値を「床」に落とすイメージ)に切り捨てます。

例えば、数値が1234基準値が1000の場合、1000の1倍の1000が最も近い値になり、その値に切り捨てられます。

ちなみに、数値が3245基準値が1000の場合、1000の3倍の3000が最も近い値になり、その値に切り捨てられます。

詳しくは、『FLOOR関数の構文 -切り捨て- 』 をご拝読ください。

理論よりも、

実際に、本記事の以降の例を見た方が分かりやすいかもしれません。

5歳刻みの年代データの作成

5歳刻みの年代データを作成する場合は、以下のようにFLOOR関数を使用します。

=FLOOR(年齢セル, 5)


年齢データを最も近いかつそれ以下の5の倍数に丸めるます。
例えば、年齢データが77歳の場合、この関数は75を返します。

これらの式では、「5」を指定しています。
これは、年齢データを5歳刻みにするための直感的な設定です。

しかし、INT関数やROUNDDOWN関数を用いた場合は、年齢を5で割ってから切り捨て、再度5を掛けるという操作が必要になります。

=ROUNDDOWN(年齢セル/5, 0)*5

=INT(年齢セル/5)*5

IF関数の場合はさらに複雑です。
体感では、このIF関数を用いた年代データの作成している方が最も多いです。

=IF(年齢>=100,100,IF(年齢>=90,90,IF(年齢>=80,80,IF(年齢>=70,70,IF(年齢>=60,60,IF(年齢>=50,50,IF(年齢>=40,40,IF(年齢>=30,30,IF(年齢>=20,20,IF(年齢>=10,10,0)))))))))


VLOOKUP関数なども可能ですが、割愛します。


以下のような結果が得られます。

年齢データを年齢データに変換_5歳刻み

10歳刻みの年代データの作成

10歳刻みの年代データを作成する場合は、以下のようにFLOOR関数を使用します。

=FLOOR(年齢セル, 10)


年齢データを最も近いかつそれ以下の10の倍数に丸めるます。
例えば、年齢データが26歳の場合、この関数は20を返します。

これらの式では、「10」を指定しています。
これは、年齢データを10歳刻みにするための直感的な設定です。

しかし、INT関数やROUNDDOWN関数を用いた場合は、年齢を10で割ってから切り捨て、再度10を掛けるという操作が必要になります。

=ROUNDDOWN(年齢セル/10, 0)*10

=INT(年齢セル/10)*10

IF関数の場合はさらに複雑です。
体感では、このIF関数を用いた年代データの作成している方が最も多いです。

=IF(年齢>=100,100,IF(年齢>=95,95,IF(年齢>=90,90,IF(年齢>=85,85,IF(年齢>=80,80,IF(年齢>=75,75,IF(年齢>=70,70,IF(年齢>=65,65,IF(年齢>=60,60,IF(年齢>=55,55,IF(年齢>=50,50,IF(年齢>=45,45,IF(年齢>=40,40,IF(年齢>=35,35,IF(年齢>=30,30,IF(年齢>=25,25,IF(年齢>=20,20,IF(年齢>=15,15,IF(年齢>=10,10,IF(年齢>=5,5,0)))))))))))))))))))))


VLOOKUP関数なども可能ですが、割愛します。


以下のような結果が得られます。

年齢データを年齢データに変換_10歳刻み

解答付きサンプルデータ

解答付きサンプルデータが欲しい方は、下記からダウンロードしてください。

最後に

FLOOR関数の方が直感的で、かつ、式がシンプルであるという優位性が見て取れます。

FLOOR関数では、年代の刻みを直接指定するだけで年代データを作成できますが、
IF関数、INT関数、およびROUNDDOWN関数では年齢を刻みで割ってから切り捨て、再度刻みを掛けるという操作が必要になります。