【エクセルの煩雑な作業不要のまま、数字の裏側にあるストーリーを炙り出せます!!】
今回の記事では、Power BIで売上金額を購入会員のそれまでの使用金額別に前期と比較できるようにします
*上記の使用ランクは年間の金額ランク付けを行っています
購入会員に使用金額のラベルを付けて比較できるようにすることで「売上の増減の原因」「売上の傾向」を分析するのに有用な示唆を得ることができます
この方法のいいところは、気になるところをラベルから辿って深堀できることです
例えば、年間2万円未満の層が減っていると思ったらフィルターで2万円の層の会員番号にアクセスすることができます
しかも、分析作業はエクセルで行うことを考えたら遥かに楽です
エクセルで同じことをおこなおうとしたら、ユニークな会員番号及び使用金額、注文数などを数シートに抽出した上で紐づけ処理を行うしかありません
今回の記事の内容を一言で言い換えるとセグメント分析の方法の解説です
ぜひセグメント分析を効率化して、有用な分析を継続していきましょう!
目次
使用データ
今回使用するのは注文データのみです
会員別データは使用しないまま作業を行えるようにします
*Calendarテーブルも使用します
最終的には、会員別に各値を集計したテーブルを作成します
OrderData_SAMPLE
ポイント
今回のポイントは時系列での日付整理です
日付を整理したうえで、各データを抽出して組み合わせる形になります
・使用月の開始日、終了日
・使用月前の1年間(判定期間)の開始日、終了日
時系列での日付整理にはEOMONTH関数を使用します
この関数を使用して、使用する各日付を変数に設定しておきます
今回の記事では2022年4月(と前年同月の2021年4月)を分析します
分析テーブル作成
SUMMRIZE関数
上記の各日付を使用し、前述のようなテーブルを作成します
このテーブル作成は、SUMMRIZE関数を使用します
但し、画像右の「使用ランク」「月」は後から列を足します
SUMMRIZE関数のグループ化の切り口は「当月使用した会員番号」になります
こちらについては、変数でCALCULATETABLEを使用して事前に作成しておきます
VAR myTable= CALCULATETABLE
(
VALUES(OrderData1[Customer ID]),
‘Calendar'[Date]>=DATEVALUE(firstDay),’Calendar'[Date]<=DATEVALUE(endDay)
)
この時に、会員番号の抽出範囲を時系列で整理した日付(firstDay、endday)を使用して指定するのもポイントの一つです
ここからはFILTER関数でうまく抽出範囲を指定しながら、SUMMRIZE関数の各列を作成します
次が実際の数式です
RETURN
SUMMARIZE(
①FILTER(‘OrderData1’,’OrderData1′[Customer ID] in myTable),
②’OrderData1′[Customer ID],
③ “当月使用金額”,
④
SUMX(FILTER( ‘OrderData1’,
’OrderData1′[Purchase Date]>=DATEVALUE(firstDay) && ‘OrderData1′[Purchase Date]<=DATEVALUE(endDay)
),
‘OrderData1′[Price]*’OrderData1′[Quantity]
),
⑤ “年間使用金額”,
SUMX(FILTER(‘OrderData1’,
‘OrderData1′[Purchase Date]>=firstDay_Year && ‘OrderData1′[Purchase Date]<=endDay_Year
),
’OrderData1′[Price]*’OrderData1′[Quantity]
),
⑥”年間注文数”,
COUNTROWS( FILTER( ‘OrderData1’,
’OrderData1′[Purchase Date]>=firstDay_Year && ‘OrderData1′[Purchase Date]<=endDay_Year
)
)
)
ここから上の数式のポイントだけを抜粋して解説します
①では使用元のテーブル指定しますが、「in」を使用して当月の会員のみの注文データ(myTable)に絞り込みます
②ではグループ化、集約の切り口を指定します
③④では、SUMX関数を使用して判定期間(当月前)の使用金額を抽出します
⑤⑥では、COUNTROWS関数を会員毎の判定期間での注文数を抽出します
IF関数
SUMMRIZE関数でテーブルを作成したら、IF関数でラベル分けを行います
IF関数は「新しい列」で追加します
IF関数の条件式(金額)はビジネスの状況に応じて適したものにする必要があります
こちらはあくまで事例です
使用ランク = IF(ISBLANK(‘2022年4月購入者分析'[年間使用金額]),”1.新規”,if(‘2022年4月購入者分析'[年間使用金額]<20000,”2.2万未満”,”3.2万以上”))
もし、前年のテーブルも作成して1つのマトリックス表の中で比較したい場合には、UNION関数で2つのテーブルを一緒にします
その際、テーブル内で各テーブルが区分できるように、各テーブルに「月」の列を追加しておきましょう
<まとめ>
今回は年間の使用金額でセグメント分析する方法を解説しました
様々なDAX関数を使用しますが、一番ポイントとなるのは「EOMONTH関数」で当月、判定期間(年間)の関連日付を整理することです
ぜひこの点は意識していきましょう
最後に、
今回の手法を使うと会員分析の精度は格段に上がります
更に精度を上げるには継続的に分析を行い、会員ランクの見直しやランク別の特徴の蓄積を行うことです
できたら、ランクを更に分解して「購入商品別」にも分類できるようにすると、もっと分析の精度が上がります
コメントを残す