エクセルピボットをBIツールのようにつかう – 2.4 – 値のグループ化

エクセルピボットをBIツールのようにつかう – 2.4 – 値のグループ化

エクセルをBIツールのように活用する方法を解説しています。使用するのはエクセルの標準機能 (マクロは使用ナシ) だけ! 
今回は、値をグループ化する方法について解説しています。

値をまとめる方法

値をまとめる方法
ブール型

 値を単純に真・偽判定します。グループ数はの最大は2です。すべてが真または偽になるときはグループ数は1になります。
 顧客コード1個に対して年齢は必ず1個の値です。ひとつの顧客コードに対して複数の年齢が登録してあるようなことはないので、真・偽いずれかのグループへ分類できます。
 NULL (空欄) は偽になります。

グループ化

 年齢を10歳階級でグループ化する、5歳階級でグループ化するようなときのまとめ方です。NULLはその他に含めるか、NULLのグループを作成します。グループ数は1以上です。

セット

 グループ化の一種です。
・商品Aだけを購入した顧客
・商品Bだけを購入した顧客
・商品Aと商品Bの両方を購入した顧客
・どちらも購入しなかった、または、何も購入しなかった顧客
 2種類の商品のとき、グループ数の最大は4です。

グループ化するときのポイント

グループ化する値が数値のとき
関数「IF」

 年齢を年代ごとにグループ化します。関数「IF」でグループ化しようとすると、ご覧のように長い計算式を入力することになります。

ROUNDDOWN

 関数「ROUNDDOWN」を使用すればシンプルな計算式で年齢を10歳ごとにグループ化できます。このとき、年齢は数値である必要があります。

FFLOOR

 関数「FLOOR」で5歳ごのとグループ化ができます。

グループ化する値が文字列のとき
IF

 都道府県を地方ごとにグループ化します。関数「IF」のとき数式へ47都道府県を埋め込む必要があります。

 文字列をグループ化するときは「マスタ」を作成、マージします。マスタ作成に時間を要するものの、地方の編成がたびたび変更になるようなことはなく、いちど作成しておけば汎用的に活用できます。

取り出す

 関数でグループ化したい部分を文字列から取り出す方法があります。また、文字列を切り分ける方法でもグループ化できることがあります。

グループ化 階層と粒度

一意の値になるとき
年代グループ

 会員の年齢を10歳階級の年代でグループ化します。1会員あたりの年齢は1です。1会員に複数の年齢はありません。
・会員は必ずどこか1つのグループへ含まれる。年齢がNULLのときは「年齢不明」とか「NULL」とかのグループになります。
・1会員の年齢は一意になる。
・1会員が複数の年代グループへ含まれることはない。
・1年齢が複数の年代グループへ含まれることはない。

・粒度が細かい方 (左) から粒度が粗い方 (右) へ、1対1の関係になる。

複数の値になるとき
複数の値になるとき

 食材を調理目的別にグループ化します。調理目的は「カレー」と「おでん」です。

 「じゃがいも」は「カレー」「おでん」の両方に属しているように見えますが、そうではありません。
・カレー=売上合計400円
・おでん=売上合計300円
・カレー&おでん=売上合計200円
 これらの3グループがあり、「じゃがいも」は「カレー&おでん」グループなのです。1商材は1グループの法則が成立します。セットによるグループ化といえます。

 「じゃがいも」を「カレー」と「おでん」の両方へグルーピングしたいときは右側のように列を追加します。ブール型の状態になります。
 このとき、「カレー」と「おでん」、どちらのグループの売上高が高いのか?このとうな比較は目安としてのみ可能です。グループ合計売上高が全体の売上高と一致しないからです。