お久しぶりです。やながです。
以前に、『シート上で動的にRFM分析』というシート上でランクの基準値を決定できるRFM分析について説明しました。

ただし、RFMの基準値を決めるにあたって事前に分布を細かく確認したいといったニーズや、RFMの5階級以上に階級を細分化してデータを深堀りしていきたいといったニーズがあると思います。
今回は、細かい階級分析のニーズに答えるべく、ヒストグラムの活用について、記載していこうと思います。
前提
RFM分析の記事と同様に、下記データモデルを使用することとします。

ヒストグラムの作成
RFMのMonetary(購入金額)の部分、顧客1人あたりの累計購入額について、ヒストグラムを作成していきます。
シート編集画面にて、左のチャートより『棒グラフ』をシート上に配置し、軸・メジャーを下記に設定します。
※チャートは『ヒストグラム』ではなく『棒グラフ』を使用します。
// 軸
=Dual(Num(Floor(Aggr(Sum(売上金額),顧客ID),5000),'#,##0')&'~',Floor(Aggr(Sum(売上金額),顧客ID),5000))
// メジャー
Count(distinct[顧客ID])
購入金額5,000ごとで顧客の累計購入額のヒストグラムが作成されました。
Dual関数を使い、表記を「5,000~」といった風にしています。
基準値の変数化
先ほどは5,000円ごとでヒストグラムを作成しましたが、1,000円ごとに見てみたい・2,000円ごとに見てみたいといった風に、基準値を切り替えて見てみたいといったニーズがあると思います。
そこで、基準値の部分の切り替えができるよう、変数化していきます。

「vRank_01」という変数を作成し、チャート『変数入力』をシート上に配置します。
今回は、1000・2000・5000・10000の4パータンに切り替えできるようにしてみます。
// 軸
=Dual(Num(Floor(Aggr(Sum(売上金額),顧客ID),$(vRank_01)),'#,##0')&'~',
Floor(Aggr(Sum(売上金額),顧客ID),$(vRank_01)))棒グラフの軸の数式の5000と記載していた部分を&(vRank_01)に変更します。
メジャーの数式はそのままで大丈夫です。

ドロップダウンで、基準値を切り替えできるようになりました。
ヒストグラムにおける対数の適用
ヒストグラムの目的は、データの分布状況を視覚的に表現することですが、データによってはヒストグラムを作成した際に、値の小さい階級への偏りが多く分布をうまく視覚化できない、うまく階級を分けることができない、といった場合があると思います。

一例として値の小さい階級に分布が偏ったヒストグラムを記載しました。こういった場合、X軸を対数化(階級を対数化)してヒストグラムを作成します。
// 軸
=Dual(Num(Floor(Aggr(Log10(Sum(売上金額)+1),顧客ID),0.1),'#,##0.0')&'~',
Floor(Aggr(Log10(Sum(売上金額)+1),顧客ID),0.1))顧客1人あたりの累計購入金額をlog10(x)という形で対数化し、0.1ごとでヒストグラムを作成しました。
累計売上金額が0の場合を考慮し、+1をしています。
今回使用したデータは、対数をとらなくても見やすい分布になっていたため対数化は行いませんが、データに偏りが多い場合はぜひ試してみてください。
さいごに
ヒストグラムは基本的なグラフですが、分布の視覚化に優れており、使用する場面は多いと思います。
また、円グラフや箱ひげ図を一緒に使用すると、さらに見やすく分析もしやすシートになると思います。
ぜひ試してみてください。


