CData Software Blog

クラウド連携のCData Software の技術ブログです。

Power BIを使ってスマレジの売上データから売れ筋商品を分析する

スマレジはiPadiPhoneといったスマートデバイスをハードウェアとして活用できるクラウドPOSシステムです。 POSレジの機能に加えて顧客管理、在庫管理、その他色々な機能をスマートフォンバイスで操作することが出来ます。

smaregi.jp

スマレジは売上や在庫を可視化する機能を持っていますが、BI(Business Intelligence)ツールと連携することでより高度な分析を効率的に行うことができます。今回はスマレジのPOSデータをMicrosoft社のBIツールであるPower BIに取り込んで売れ筋商品を分析するためのグラフを作成します。

作成するのは以下のような商品別売上高のグラフです。 グラフの下に二つのスライサー(対象データを絞り込むツール)を用意し、対象期間と販売店で絞り込めるようにします。

f:id:urabe_shintaro:20200618155726p:plain

また、売れ筋商品を可視化するためにABC分析を行い、以下のようにランクごとにグラフの色を変えます。

f:id:urabe_shintaro:20200618132404p:plain

構成

今回のシステム構成を以下に示します。 Power BIからスマレジへの接続にはCData Softwareの「CData Power BI Connector」を使います。 CData Power BI ConnectorはPower BIとスマレジなどクラウドサービスとの連携を実現するコネクタです。 クラウドサービスが提供するデータをPower BIのデータソースとして利用できるようになります。

f:id:urabe_shintaro:20200618145418p:plain

事前準備

Power BIとCData Smaregi Power BI Connectorをインストールします。

Power BIのインストール

WindowsMicrosoft Storeからインストールしてください。

f:id:urabe_shintaro:20200618153331p:plain

またはPower BIダウンロードページからインストーラをダウンロードしてインストールしてください。

CData Smaregi Power BI Connectorのインストール

CData Software Japan社のCData Smaregi Power BI Connectorダウンロードページにアクセスしてください。 ダウンロードページの「評価版」をクリックすると必要事項入力画面が表示されます。

f:id:urabe_shintaro:20200618132504p:plain

必要事項を入力し、「ダウンロード」をクリックするとCData Smaregi Power BI Connector評価版のインストーラがダウンロードされます。 ダウンロードしたファイルをダブルクリックするとインストーラが起動しますので、ウィザードに従ってインストールしてください。

ドライバのインストールが完了すると接続設定画面が表示されますので、AccessTokenとContractIdをそれぞれ設定してください。 AccessToken, ContractIdの取得方法についてはヘルプをご覧ください。

f:id:urabe_shintaro:20200618132543p:plain

データの読み込み

ここからはPower BIの操作になります。 操作方法についてはMicrosoftのヘルプ等をご覧ください。

はじめにPower BI上にデータを読み込みます。

テーブルの選択

メニューの「データを取得」をクリックします。

f:id:urabe_shintaro:20200305094913p:plain

コネクタの一覧から「CData Smaregi」を選択し「接続」をクリックします。

f:id:urabe_shintaro:20200618132623p:plain

「Data Source Name」に「CData Power BI Smaregi」と入力し、「OK」をクリックします。

f:id:urabe_shintaro:20200618132640p:plain

接続が完了するとスマレジのテーブル一覧が取得できます。 今回は売上のトランザクションデータが保存されているTransactionHeads, TransactionDetailsと、店舗名を取得するためにStoresテーブルを選択します。 テーブルを選択したら「データの変換」をクリックしてください。

f:id:urabe_shintaro:20200618132721p:plain

データの結合

売上のデータはTransactionHeadsとTransactionDetailsに分かれて保存されているため、この二つのテーブルを結合します。 さらにトランザクションの店舗コードに対する店舗名を対応させるためにStoresテーブルを結合します。

f:id:urabe_shintaro:20200618143420p:plain

前のステップの最後で「データの変換」をクリックすると、読み込むデータ項目の設定を行う「Power Queryエディター」が開きます。 Power BI画面からPower Queryエディターを開くときはメニューの「ホーム」タブにある「データの変換」をクリックしてください。

f:id:urabe_shintaro:20200618143502p:plain

この画面を使ってテーブルの結合を行います。 はじめにTransactionHeadsにTransactionDetailsを結合します。 画面左の「クエリ」からTransactionHeadsを選択し、メニューの「クエリのマージ」をクリックしてください。

f:id:urabe_shintaro:20200618143644p:plain

「マージ」ダイアログが開いてTransactionHeadsのプレビューが表示されます。 結合するテーブルとしてTransactionDetailsを選択します。

f:id:urabe_shintaro:20200618132927p:plain

結合キーとして、TransactionHeadsのTransactionHeadId列と、TransactionDetailsのTransactionHeadId列をそれぞれ選択します。

f:id:urabe_shintaro:20200618132959p:plain

最後に「OK」をクリックしてダイアログを閉じます。 TransactionHeadsテーブルの一番右をみるとTransactionDetailsのカラムが結合されています。

f:id:urabe_shintaro:20200618133050p:plain

このカラムのフィールド選択ボタン(追加されたTransactionDetailsカラムのヘッダの右にあるボタン)をクリックし、結合するフィールドを選択します。 今回はProductName, Price, Quantityを選択します。

f:id:urabe_shintaro:20200618133431p:plain

「OK」をクリックするとカラムが設定されます。

同様にStoresテーブルを結合します。 TransactionHeadsを選択し、メニューの「クエリのマージ」をクリックしてください。 結合するテーブルとしてStoresを選択し、結合キーとしてransactionHeadsのStoreIdと、StoresのStoreIdをそれぞれ選択します。

f:id:urabe_shintaro:20200618133634p:plain

StoresテーブルからはStoreNameを取得します。

f:id:urabe_shintaro:20200618133650p:plain

最後にメニューの「閉じて適用」をクリックすると、設定したクエリに従ってデータが読み込まれます。

f:id:urabe_shintaro:20200618133730p:plain

レポートの作成

それでは読み込んだデータを利用して売れ筋商品のレポートを作成します。 データの読み込みが完了すると、Power BI画面の「フィールド」欄に読み込んだテーブルとフィールドが表示されます。

f:id:urabe_shintaro:20200618133841p:plain

製品別売上グラフの作成

はじめに製品別の売上グラフを作成します。

「売上明細合計金額」指標の作成

グラフの作成に先立ち、売上明細ごとの販売金額合計を表す指標(メジャー)を作成します。 この指標は売上明細の「金額×数量」で計算します。 メニューの「新しいメジャー」をクリックし、以下の式を入力してください。

TransactionDetailsTotal = SUMX(TransactionHeads,'TransactionHeads'[TransactionDetails.Price] * 'TransactionHeads'[TransactionDetails.Quantity])

f:id:urabe_shintaro:20200618134058p:plain

計算式はDAX(Data Analysis Expressions)と呼ばれる記法で記述します。 チェックマークをクリックすると入力した計算式をもとに新しいメジャーが作成されます。

f:id:urabe_shintaro:20200618134123p:plain

Power BI画面の「フィールド」に作成したメジャー「TransactionDetailsTotal」が追加されています。

f:id:urabe_shintaro:20200618134219p:plain

グラフの作成

それでは作成した指標を使ってグラフを作成します。 「視覚化」の横棒グラフをダブルクリックするとページにグラフが配置されます。

f:id:urabe_shintaro:20200618134644p:plain

「フィールド」のTransactionHeadsテーブルを展開し、商品名TransactionDetails.ProductNameフィールドを「軸」へ、先ほど作成した売上明細合計金額TransactionDetailTotalフィールドを「値」へそれぞれドラッグしてください。 レポート画面に商品ごとの売上金額のグラフが表示されます。

f:id:urabe_shintaro:20200618134338p:plain

スライサーの作成

期間や店舗でフィルタリングするスライサーを作成します。

「視覚化」からスライサーを二つ配置してください。

f:id:urabe_shintaro:20200618134512p:plain

スライサーの一つを選択し、「フィールド」からTransactionHeadsテーブルのSumDateTimeフィールドを「フィールド」にドラッグしてください。

f:id:urabe_shintaro:20200618134815p:plain

このスライサーで以下のようにグラフの対象期間を選択できるようになります。

f:id:urabe_shintaro:20200618134915p:plain

もう一つのスライサーを選択し、TransactionHeadsテーブルのStores.StoreNameフィールドを「フィールド」にドラッグしてください。

f:id:urabe_shintaro:20200618135005p:plain

このスライサーでは以下のようにグラフの対象店舗を選択できるようになります。

f:id:urabe_shintaro:20200618135127p:plain

レポート

書式を整えて以下のようなレポートを作成しました。

f:id:urabe_shintaro:20200618135138p:plain

ABC分析

ABC分析は在庫管理や販売管理業務で重点的に管理する品目を分類する方法の一つで、「売上の8割は2割の品目で占められている」というパレートの法則にもとづく分析方法です。 売上上位を占める商品に営業やマーケティングのリソースを集中させることで、売上を効率的に上げることができます。

ここでは先ほど作成したグラフ上で各商品をABCランクにそれぞれ分類します。

「売上累積構成比」指標の作成

はじめに売上累積構成比を表す指標を作成します。 メニューの「新しいメジャー」をクリックし、計算式に以下のコードを入力してください。

売上累積構成比 = 
VAR SummarizedTable = 
SUMMARIZE(
    ALLSELECTED(TransactionHeads), TransactionHeads[TransactionDetails.ProductName], 
    "Sum",SUMX(TransactionHeads, TransactionHeads[TransactionDetailsTotal])
)
VAR CurrentCategory =
    SELECTEDVALUE ( TransactionHeads[TransactionDetails.ProductName] )
VAR CurrentCategorySum =
    CALCULATE ( TransactionHeads[TransactionDetailsTotal], TransactionHeads[TransactionDetails.ProductName] = CurrentCategory )
VAR CumulativeSum =
    SUMX (
        FILTER (
            SummarizedTable,
            [Sum] > CurrentCategorySum
                || ( [Sum] = CurrentCategorySum
                && TransactionHeads[TransactionDetails.ProductName] <= CurrentCategory )
        ),
        [Sum]
    )
VAR TotalSum =
    SUMX(ALLSELECTED(TransactionHeads), TransactionHeads[TransactionDetailsTotal])
RETURN
    100 * DIVIDE ( CumulativeSum, TotalSum )

累積構成比の算出方法についてはこの記事を参考にしました。

f:id:urabe_shintaro:20200618135503p:plain

チェックマークをクリックすると新しいメジャー「売上累積構成比」が作成されます。

グラフの作成

売上累積構成比を表示するためにグラフの種類を変えます。 グラフを選択し、「視覚化」の「折れ線グラフおよび集合縦棒グラフ」をクリックしてください。

f:id:urabe_shintaro:20200618135718p:plain

先ほど作成したグラフを流用している場合、「共有の軸」にTransationDetails.ProductName、「各棒の値」にTransactionDetailTotalが設定されています。 このグラフの「線の値」に、今回作成した「売上累積構成比」をドラッグしてください。

f:id:urabe_shintaro:20200618140233p:plain

このグラフで売上が高い商品がどれくらいのシェアを占めているかが分かります。

続いてランクごとに色分けしてみます。 グラフを選択し、「視覚化」の「データの色」を展開してください。 「規定色」の「fx」をクリックすると、条件による色変更を設定するダイアログが表示されます。

f:id:urabe_shintaro:20200618140320p:plain

「書式設定基準」に「ルール」、「フィールド」に「売上累積構成比」を選択してください。 「ルール」にはAランクおよびBランクのルールとして二つのルールを追加し、各ランクの売上累積構成比を設定します。 Aランクのルールを下にすることでこちらが優先的に適用されるようにしています。 ランクの閾値は業態などにより異なりますが、今回はBランクの売上累積構成比を「90%以下」、Aランクの売上累積構成比を「70%以下」と設定しました。

f:id:urabe_shintaro:20200618140402p:plain

「OK」をクリックするとルールに基づく既定色が適用されます。 以下のように、売上累積構成比70%, 90%, それ以外の3つのランクでそれぞれ色を変えることができました。 下のグラフでオレンジ色に示された商品がAランクの最重点管理商品になります。

f:id:urabe_shintaro:20200618140726p:plain

おわりに

本記事ではPower BIを使ってスマレジの売上データを可視化し、売れ筋商品を分析する方法を紹介しました。 商品のサイズや色などの属性情報、または在庫など他のトランザクションデータと組み合わせることでさらに詳細な分析ができるようになります。 その場合でもデータの読み込み、指標の定義、グラフ化など基本的な流れは変わりません。 今回紹介した例を応用していろいろな分析方法をお試しください。

CData Smaregi Power BI Connector

今回スマレジとのデータ連携にはCData Smaregi Power BI Connectorを使いました。 CData Smaregi Power BI Connectorは30日間の評価版を無料で利用できます。 スマレジとクラウドサービスとのデータ連携をご検討の方はぜひお試しください。