shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Excel】「年齢」を「年代」に変換など、区間分け(ビニング)の方法

データ分析時、数値データを適当な範囲(○以上△未満)で区切り、カテゴリーに変換して全体的な傾向を見たい時があります。例えば、「年齢」を「年代」に変換して年代ごとの度数分布表を作成するケースなどです。

このような場合は、ExcelのVLOOKUP関数、またはFLOOR関数を使用します。

VLOOKUP関数を使用する方法は、区間の範囲(○以上△未満)が等間隔でない場合にも可能な方法です。FLOOR関数は区間の範囲が等間隔の場合に可能な方法です。

アウトプットイメージ

次のように「顧客マスタ」というシートのB列に年齢データが入力時、C列に年代のカテゴリを計算する。

B列の年齢をC列で年代に変換

年齢を年代に変換のアウトプットイメージ

実施方法

VLOOKUP関数を使用した方法

区間分けの基準となる表の作成

VLOOKUP関数を使用する方法は、まず区間分けの基準となる表(区間の範囲を示した表)を作成します。

例えば年代の場合、次のように作成します。

下限値と名称の表で、下限値は昇順にしている

区間分けの基準となる表の作成イメージ

区間分けの基準となる表の注意点は次のとおりです。

  • ○以上の下限値と名称の表にする
  • 下限値は昇順にする(事例で、A列の年齢区分の箇所)

 

VLOOKUP関数の使用

次に記載するVLOOKUPの数式を入力している

VLOOKUPでの変換例

事例では、数式は次のようにしている(セルC2の場合)。

=VLOOKUP(B2,年代テーブル!$A$1:$B$7,2,TRUE)

このようにVLOOKUPの検索条件をTRUEとすることで近似一致となり、条件を満たす最後の場所と一致する。

FLOOR関数を使用した方法(区間の範囲が等間隔)

次に記載するFLOORの数式を入力している

FLOORでの変換例

事例では、数式は次のようにしている(セルD2の場合)。

=FLOOR(B2,10)&"代"

この場合、「10」(数式の赤字部分)で区切った値が戻るので、文字連結で「代」をつけている。

VLOOKUP関数とFLOOR関数での実現方法の違い

冒頭に記載のとおり、VLOOKUP関数を使用する方法は、区間の範囲(○以上△未満)が等間隔でない場合にも可能な方法です。事例のように、20歳未満を10代以下、60歳以上を60代といった区切りができる。

一方で、FLOOR関数は区間の範囲が等間隔の場合に可能な方法で、VLOOKUPのような「区間分けの基準となる表」も不要となる。

以上、Excelで「年齢」を「年代」に変換など、区間分け(ビニング)をする方法でした。