Vincentさんは、レコードを年齢層でグループ分けする方法を知りたいと思っていた。すべての人に年齢があるが、Vincentさんの目的は、特定の年齢でグループ分けするのではなく、年齢層別にグループ分けすることだ。各グループは、最低年齢と最高年齢で定義する。たとえば、1歳、2歳、または3歳の子供は、「1~3」というグループに分類される。グループの年齢層を企業の独自のルールに従ってカスタマイズしたいというのは、よくある要望だ。Vincentさんは、グループの値を手動で入力することもできるが、そうしたいとは考えていない。もっともなことだろう。
この作業をたった1つの式で実行しようとすれば、困ったことになるだろう。筆者なら、もっと簡単なアプローチを採る。この記事では、連結式を使ってマトリックス表を作成し、各年齢グループを生成する。それから、VLOOKUP()関数を使って、一人ひとりに適切な年齢グループが返されるようにしよう。
筆者は、64ビット版の「Windows 10」で「Excel 2016」を使用している。ここで紹介する方法は古いバージョンでも利用できるが、テーブルオブジェクトとIFERROR()関数は、「Excel 2003」以前のバージョンでは利用できない。「Office 365」のブラウザ版では、この方法を利用できる。また、自分のデータで作業してもいいし、「.xlsx」形式のデモファイルをダウンロードすることもできる。
はじめに
最初のステップは、各グループの年齢幅を決めることだ。Vincentさんは、1~3、4~6、7~10のように、3歳ごとのグループを考えている。図Aにあるように、ここからスタートだ。H1の値は、各年齢グループの年齢幅を示している。必要があれば、この値を更新してマトリックス表を変更できる。

図A:セルH1の入力値は、これから作成する年齢グループのマトリックス表の基礎となる。
マトリックス表
マトリックス表に、式ではなく値を入れることもできるが、考えてほしい。もしそうすれば、誰かがルールを変更すると、マトリックス表のセルを一つひとつ修正しなければならなくなるだろう。入力値を参照する式を使えば、その値を変えるだけで、マトリックス表全体に変更を適用できる。
たいていの場合、先頭のグループは1歳(または0歳)から始まるだろう。これが、このマトリックス表で使用する唯一の値だ。セルF4に1と入力しう。それから、以下の操作を行って、マトリックス表を作成する。
- 次の式をセルG4に入力する(図B)。
=$F4+$H$1
- 次の式をH4に入力し、先頭のグループに「1-3」と表示させる。
=$F4&"-"&$G4
- 次の式をセルF5に入力し(図C)、2番目のグループに開始年齢が表示されるようにする。
=$G4+1
- G4とH4の式を5行目にコピーする(図D)。

図B:この式は年齢グループの最高年齢の値を返す。

図C:次のグループの最低年齢。

図D:式をコピーする。