売上分析を行う際、商品Aのみの契約か、商品Bのみか、それともA+Bの組み合わせで契約しているのかを集計したいこと、ありませんか?例えばレストランで、カレー単品を注文するお客さんが多いのか、それともセットでミルク、もしくはサラダを注文することが多いのか、カレー+ミルク+サラダの3つを注文することが多いのか?といった具合です。仮に「カレー+ミルク+サラダ」で注文するお客さんが多いとすると、3商品をセットメニューとして売出すなどして販促につなげることができそうです。
今回はオンプレ・クラウド・サブスクの3つのサービス形態で様々な商品を提供している企業の契約データを例に、どの組み合わせの契約が何件あるのかを顧客ごとにカウントする方法を紹介します。サンプルデータはボタンからダウンロード可能です。
加工の方針
ではどのような加工が必要か、完成形から見ていきましょう!サンプルデータに「契約形態」項目を追加できれば集計できそうです。
「契約形態」項目をDr.SumにつながるBIのいずれかで顧客ごとに重複なく(Distinct)集計することで、どの組み合わせが何件あるか集計することができます。
しかし、「契約形態」という項目を作るのは一筋縄ではいかなそうです。元データでは1レコード1契約となっており「オンプレ+クラウド」といった情報を作るには顧客ID単位で行方向にまとめる必要があります。一言で「まとめる」と言っても都合よく「オンプレ+クラウド」などと作ってくれる関数はありません。そこで契約形態ごとのコードを数値計算で作成し結合する方法を紹介します。
必要なデータを用意する
契約形態マスタ
まずは、下記のような契約形態マスタをExcelやCSVとして作成し、Dr.Sumへインポートします。契約形態マスタデータはボタンからダウンロードできます。
手動でのインポートはこちらのページが参考になります。
マスタは各桁の値と契約形態が対応しています。
顧客別契約形態マスタ
次に作成したマスタに紐付けられるように、元データにもコードを付与していきます。Dr.Sumのビュー機能を用いて、顧客IDごとの提供形態フラグを作っていきます。ビューはEnterprise Managerの[ビュー]タブをクリック後、中央のエリアで右クリックし[新規作成]から作成できます。
ビュー作成の流れは以下のとおりです。
- 中央のエリアで右クリック→[テーブルを追加]から元データ(契約情報サンプル)を追加し、顧客IDに対して[選択フィールドを追加]
- フィールド名や別名を編集できるエリアで再び右クリックし、[新規作成]をクリック
- 新しく追加された行について「フィールド」欄に「CASE ~」から始まる下記のSQL文を入力、また「別名」欄に[契約コード]と入力
CASE 提供形態
WHEN 'オンプレ' THEN 100
WHEN 'クラウド' THEN 10
WHEN 'サブスク' THEN 1
ELSE 0
END
- もう一度同エリアで右クリックし[グループ化]を選択後、顧客IDの行には「グループ化」を、契約コードの行には「合計」をプルダウンから選択
最終的なビューの設定画面はこのようになります。
こちらのビューは「顧客別契約形態マスタ」などとして保存しておきましょう。開くと下記のようなデータが作成できていることを確認できます。
フィールド欄に記述した文言(SQL)では顧客IDをグループ化し契約コードを合計(集計)を行うことで各フラグの値を合算し顧客ごとの契約コードを算出しています。合算することで、例えば「オンプレ+サブスク」の場合は100(オンプレ)+1(サブスク)=101のように提供形態の情報を各桁に保存したままコード作成ができます。
作成した2つのマスタを結合
以上の操作で必要なデータが揃いました。最後に、新しいビューを作成し、元データ、契約形態マスタ、顧客別契約形態マスタの3つのデータを結合していきます。
Dr.Sumでは下記のようなビュー設定になります。「V_契約形態集計」などとして保存します。もし、「項目の型が違う」旨のエラーが出た場合は「契約区分マスタ」の「契約コード」が文字型になっている可能性があるので確認してみてください。
以上で完成です。こちらのビューを使って、顧客ごとの契約形態を集計できます。
さいごに
本記事では商品Aか、商品Bか、はたまた商品A+商品Bを一緒に契約したかといった組み合わせ別に集計するためのデータ加工の方法について紹介しました。ただし、今回の方法は組み合わせの数がある程度少ない前提での方法になります。データ件数によってはETLツールなどを使って予め集計しやすい形に加工することも視野に入れましょう。今回は組み合わせ別に件数を集計するといった内容ですが、小売での併売商品を分析する場合はバスケット分析といった方法もあるので用途に合わせてご利用ください。