エクセルピボットをBIツールのようにつかう – 2.4 – 値のグループ化
エクセルをBIツールのように活用する方法を解説しています。使用するのはエクセルの標準機能 (マクロは使用ナシ) だけ!
今回は、値をグループ化する方法について解説しています。
目次
値をまとめる方法
ブール型
値を単純に真・偽判定します。グループ数はの最大は2です。すべてが真または偽になるときはグループ数は1になります。
顧客コード1個に対して年齢は必ず1個の値です。ひとつの顧客コードに対して複数の年齢が登録してあるようなことはないので、真・偽いずれかのグループへ分類できます。
NULL (空欄) は偽になります。
グループ化
年齢を10歳階級でグループ化する、5歳階級でグループ化するようなときのまとめ方です。NULLはその他に含めるか、NULLのグループを作成します。グループ数は1以上です。
セット
グループ化の一種です。
・商品Aだけを購入した顧客
・商品Bだけを購入した顧客
・商品Aと商品Bの両方を購入した顧客
・どちらも購入しなかった、または、何も購入しなかった顧客
2種類の商品のとき、グループ数の最大は4です。
グループ化するときのポイント
グループ化する値が数値のとき
年齢を年代ごとにグループ化します。関数「IF」でグループ化しようとすると、ご覧のように長い計算式を入力することになります。
関数「ROUNDDOWN」を使用すればシンプルな計算式で年齢を10歳ごとにグループ化できます。このとき、年齢は数値である必要があります。
関数「FLOOR」で5歳ごのとグループ化ができます。
グループ化する値が文字列のとき
都道府県を地方ごとにグループ化します。関数「IF」のとき数式へ47都道府県を埋め込む必要があります。
文字列をグループ化するときは「マスタ」を作成、マージします。マスタ作成に時間を要するものの、地方の編成がたびたび変更になるようなことはなく、いちど作成しておけば汎用的に活用できます。
関数でグループ化したい部分を文字列から取り出す方法があります。また、文字列を切り分ける方法でもグループ化できることがあります。
グループ化 階層と粒度
一意の値になるとき
会員の年齢を10歳階級の年代でグループ化します。1会員あたりの年齢は1です。1会員に複数の年齢はありません。
・会員は必ずどこか1つのグループへ含まれる。年齢がNULLのときは「年齢不明」とか「NULL」とかのグループになります。
・1会員の年齢は一意になる。
・1会員が複数の年代グループへ含まれることはない。
・1年齢が複数の年代グループへ含まれることはない。
・粒度が細かい方 (左) から粒度が粗い方 (右) へ、1対1の関係になる。
複数の値になるとき
食材を調理目的別にグループ化します。調理目的は「カレー」と「おでん」です。
「じゃがいも」は「カレー」「おでん」の両方に属しているように見えますが、そうではありません。
・カレー=売上合計400円
・おでん=売上合計300円
・カレー&おでん=売上合計200円
これらの3グループがあり、「じゃがいも」は「カレー&おでん」グループなのです。1商材は1グループの法則が成立します。セットによるグループ化といえます。
「じゃがいも」を「カレー」と「おでん」の両方へグルーピングしたいときは右側のように列を追加します。ブール型の状態になります。
このとき、「カレー」と「おでん」、どちらのグループの売上高が高いのか?このとうな比較は目安としてのみ可能です。グループ合計売上高が全体の売上高と一致しないからです。