本記事では、Microsoft Fabricのウェアハウスに格納された売上・在庫・顧客データを活用し、Power BIで分析環境を構築する実践的なステップをご紹介します。
前回は、データモデルの作成についてご紹介しました。
【Power BI】データモデル構築からレポート・ダッシュボード作成まで(データモデル編) - JBS Tech Blog
今回は、レポート編として売上パフォーマンスと在庫最適化の2つの視点から、レポートの設計と作成方法について紹介します。
※本記事のデータは、前回用いたダミーデータをそのまま利用しています。
レポート設計の基本方針
本レポートは、日々の店舗運営において迅速かつ的確な意思決定を行えるよう、売上状況と在庫状況の両面から店舗パフォーマンスを可視化することを想定として作成を行います。
提供する主要情報
売上パフォーマンスレポート
売上パフォーマンスレポートでは、日々の売上状況を把握し、店舗運営の改善に活かせるよう、以下の情報を中心に構成します。
- 売上状況:前日の売上状況、前々日との売上比較、月間/年間の目標達成度。
- 期間別トレンド:日次の売上推移を可視化し、季節性や曜日ごとの傾向を把握。
- 貢献度の可視化:店舗別・商品カテゴリ別の売上構成比を視覚的に表現し、売上への貢献度を明確化。
このレポートでは、KPIカードで主要指標を表示し、折れ線グラフでトレンドを、積み上げ棒グラフやツリーマップで構成比を表現します。
在庫最適化レポート
在庫管理レポートでは、在庫の健全性を把握し、欠品や過剰在庫による機会損失を防ぐために、以下の情報を中心に構成します。
- 在庫状況:前日時点の在庫評価額、現在の在庫数量、全体の在庫状況。
- 期間別トレンド:カテゴリ別・日付別の在庫数量の推移を可視化し、在庫の動きや季節性を把握。
- リスクの可視化:欠品リスク商品数、過剰在庫商品数などをKPIカードや条件付き書式付きテーブルで表示し、即時対応を促進。
このレポートでは、KPIカードで在庫関連の主要指標を表示し、複合グラフで販売数量と在庫数量のバランスを、積み上げ棒グラフでカテゴリ別の在庫推移を、詳細テーブルで商品/店舗ごとの在庫ステータスを表現します。
レポートの作成
次に、実際にPower BI上でレポートを作成する手順について説明します。
まずは、レポートの新規作成を行います。
画面上部に表示されている報告タブから、「新しいレポート」をクリックし、レポートの新規作成を行います。

空のレポートが表示された後、作業内容の保護の観点から先にレポートの保存を行います。
「ファイル」 > 「名前を付けて保存」を順にクリックします。

任意のワークスペースに、「大阪支店_売上・在庫レポート」という名前で保存します。

売上パフォーマンスレポートの作成
レポート構成の概要
レポートの基本設計と保存が完了したため、次に売上パフォーマンスレポートの作成を行います。
具体的には、以下のビジュアルを作成していきます。
- 前日売上や目標達成度を示すカードの作成
- ユーザー操作性を高めるためのフィルター作成(年、四半期、月、曜日)
- 日次売上トレンドを可視化する折れ線グラフの作成
- 店舗別売上を可視化する棒グラフの作成
- 商品カテゴリ別の売上構成比を示すツリーマップの作成
- KPIカードに対する相互作用のオフ設定
カードの作成
まず、売上パフォーマンスのレポートの上部には、主要なKPIを把握できるよう、カードビジュアルを配置します。
カードビジュアルは、視覚的に魅力的な書式で主要なメトリックを表示するための汎用性の高いツールです。今回のレポートでは、先ほど作成したメジャーを利用して主要なKPIをレポートの上部に表示します。
これにより、日々の売上状況や目標達成度を一目で確認でき、迅速な判断や対応が可能になります。
実際に、カードの追加と割り当て方法手順を以下に示します。
レポートの編集画面から、視覚化の中にある「カード」を選択し、作成したメジャーをカードビジュアルのフィールドにドラッグ&ドロップします。

選択したメジャーはカードビジュアルに表示されるため、書式設定を使ってタイトルの表示などを調整し、ユーザーにとって視認性の高い形に整えます。


上記の手順で、作成したメジャーを利用して主要なKPIを全て表示したものが以下になります。

日付フィルターの作成
次に、ユーザーが年、四半期、月、曜日で自由にデータを絞り込めるよう、スライサーをレポートの左部に配置します。
これにより、特定の期間にフォーカスして売上の傾向を分析でき、曜日ごとの来客数や季節要因による変動など、意思決定を行うためのヒントを得ることができます。
実際に、スライサーの追加と割り当て方法手順を以下に示します。
視覚化の中にある「スライサー」を選択し、日付ディメンションテーブルの項目(年、四半期、日付、曜日)をフィールドに一つずつドラッグし、それぞれを独立したスライサーとして配置します。

書式設定を使ってタイトルの表示やスライサーの設定(今回はドロップダウンに変更)などを行い、ユーザーにとって視認性の高い形に整えます。


上記の手順で、年、四半期、月、曜日で自由にデータを絞り込めるように各期間のスライサーを追加したものが以下になります。

売上トレンドと内訳の可視化
KPIカードと日付フィルターの作成が完了したら、次は売上パフォーマンスをより深く分析するためのビジュアルを中央部に追加していきます。
これらのビジュアルを活用することで、支店ごとの売上トレンドやカテゴリ別の構成比、店舗別の売上状況を直感的に把握することが可能になります。
売上の増減要因を特定し、戦略的な意思決定を行うための重要な情報源となります。
日次売上トレンドの作成
まず初めに、特定のイベントや時期による売上変動を分析できるよう、折れ線グラフを配置します。
実際に、折れ線グラフの追加手順を以下に示します。
視覚化の中にある「折れ線グラフ」を選択し、X軸に「日付ディメンション[日付]」、Y軸に「販売ファクト[合計金額]」をドラッグします。

書式設定を使ってタイトルとY軸の変更などを行い、ユーザーにとって視認性の高い形に整えます。


店舗別売上の作成
次に、各店舗の売上を分析できるよう、積み上げ棒グラフを配置します。
実際に、積み上げ棒グラフの追加手順を以下に示します。
視覚化の中にある「積み上げ縦棒グラフ」を選択し、X軸に「店舗ディメンション[店舗名]」、Y軸に「販売ファクト[合計金額]」をドラッグします。

先ほどの日次売上トレンドと同様に、書式設定を使ってタイトルとY軸の変更などを行い、ユーザーにとって視認性の高い形に整えます。


カテゴリ別売上構成比の作成
最後に、カテゴリ別の売上構成比を可視化できるよう、ツリーマップを配置します。
実際に、ツリーマップの追加手順を以下に示します。
視覚化の中にある「ツリーマップ」を選択し、カテゴリに「店舗ディメンション[店舗名]」、値に「販売ファクト[合計金額]」をドラッグします。

書式設定を使ってタイトルの変更などを行い、ユーザーにとって視認性の高い形に整えます。


カードに対する相互作用のオフ設定
Power BIでは、あるビジュアルを選択すると、他のビジュアルがその選択に応じて自動的にフィルターされる仕組みがあります。
ただ、今回のレポートでは、KPIカードはフィルターに依存せずに常に指定された値を表示したいため、相互作用をオフに設定します。相互作用をオフに設定することで、ユーザがレポートを操作してもカードの値が意図せず変わることを防ぎ、値を維持することができます。
KPIカードが他のビジュアルの影響を受けないようにするには、以下の手順で相互作用を「なし」に設定します。
- まず、レポートページ上でKPIカード以外のビジュアルを一つずつ選択していきます。
- ビジュアルを選択すると、その上に表示されるアイコン群の中に、フィルターの相互作用を設定するアイコン(通常は「フィルター」、「ハイライト」、「なし」の3種類)が表示されます。
- それぞれのKPIカードの上に表示されている「なし」(円の中に斜線が入ったアイコン)を選択します。

この作業をKPIカード以外のすべてのビジュアル(例: 折れ線グラフ、棒グラフ、ツリーマップなど)に対して繰り返すことで、ユーザーがレポートを操作しても、KPIカードの値が意図せず変わってしまうのを防ぎ、常に安定した主要KPIを提供できるようになります。

レポートの保存
全てのビジュアルとフィルターの配置が完了したら、レポートのタイトルを設定し、保存します。
レポートキャンバスの上部に「テキストボックス」を追加し、「大阪支店 売上パフォーマンス」とレポートタイトルを入力します。

Power BI Desktopの上部メニューから「ファイル」→「保存」を選択しワークスペース上にレポートを保存します。
完成した売上パフォーマンスのレポートが、以下です。

在庫最適化レポートの作成
レポート構成の概要
次に在庫最適化レポートの作成を行います。
構成としては、以下のビジュアルを作成していきます。
- 前日在庫評価額、欠品リスク商品数、過剰在庫商品数を示すカードの作成
- ユーザー操作性を高めるためのフィルター作成(年、四半期、月、店舗タイプ、店舗、カテゴリ、ブランド、商品名)
- カテゴリ別の販売数量と在庫数量を比較する複合グラフの作成
- 日付 × カテゴリ別の在庫数量推移を可視化する折れ線グラフの作成
- 商品別の在庫ステータスを一覧表示するテーブルの作成
- KPIカードに対する相互作用のオフ設定
※カード作成、フィルター設定、相互作用のオフ設定については、売上パフォーマンスレポートと同様の手順となるため、詳細説明は省略します。
在庫トレンドと内訳の可視化
カテゴリ別販売数量と在庫数量の比較
まず、販売数量と在庫数量のバランスを把握するため、カテゴリ別の複合グラフを作成します。
実際に、複合グラフの追加手順を以下に示します。
視覚化の中にある「折れ線グラフおよび集合縦棒グラフ」を選択し、X軸に「商品ディメンション[カテゴリ]」、列のY軸に「販売ファクト[販売数量]」、線のY軸に「在庫ファクト[在庫数量]」をドラッグします。

書式設定を使ってタイトルとY軸の変更などを行い、ユーザーにとって視認性の高い形に整えます。


日付×カテゴリ別の在庫数量推移
次に、時間軸で在庫の変動を把握するため、日付とカテゴリ別の在庫数量を折れ線グラフで表示します。
実際に、折れ線グラフの追加手順を以下に示します。
視覚化の中にある「折れ線グラフ」を選択し、X軸に「日付ディメンション[日付]」、Y軸に「在庫ファクト[在庫数量]」、凡例に「商品ディメンション[カテゴリ]」をドラッグします。

書式設定を使ってタイトルの変更などを行い、ユーザーにとって視認性の高い形に整えます。


商品別在庫ステータスの表示
最後に、商品ごとの在庫状況を詳細に確認するため、テーブルを作成します。
このテーブルでは、各商品の在庫量や店舗ごとの状況、在庫の鮮度やステータスを一目で把握できるように、以下の列を表示します。
| 対象列名 | 説明 |
| 商品名 | 在庫対象となる商品の名称 |
| カテゴリ | 商品が属する分類 |
| ブランド | 商品ブランド名 |
| 在庫数量 | 現在の在庫数 |
| 店舗名 | 在庫が存在する店舗 |
| 店舗タイプ | 店舗の業態 |
| 在庫日時 | 在庫情報の記録日 |
| 在庫ステータス | 在庫の状態(正常、欠品リスク、過剰在庫) |
在庫ステータス列は、新しいビジュアル計算によってテーブルに追加するカスタム列で、単なる在庫数量の把握にとどまらず、在庫の健全性やリスクの有無を判断できるように作成します。
実際に、テーブルの追加手順を以下に示します。
視覚化の中にある「テーブル」を選択し、列に「商品ディメンション[商品]」、「商品ディメンション[カテゴリ]」、「商品ディメンション[ブランド]」、「在庫ファクト[在庫数量]」、「店舗ディメンション[店舗名]」、「店舗ディメンション[店舗タイプ]」、「在庫ファクト[在庫日時]」、を順にドラッグします。

次に、在庫ステータス列の追加を行います。
テーブル右上の「…」 > 「新しいビジュアル計算」 > 「カスタム」を順にクリックします。

赤枠の「計算」と記載されている箇所を以下の式に置き換えます。
在庫ステータス =
SWITCH(
TRUE(),
[在庫数量] < 20, "欠品リスク",
[在庫数量] > 100, "過剰在庫",
"正常"
)


コミット後、テーブルを確認すると在庫ステータス列として追加されていることを確認できます。

書式設定を使ってタイトルの変更や合計行の削除などを行い、ユーザーにとって視認性の高い形に整えます。

レポートの保存
全てのビジュアルとフィルターの配置が完了したら、レポートのタイトルを「大阪支店 在庫最適化」として追加しレポートの保存を行います。
完成した在庫最適化のレポートが、以下です。

終わりに
今回は、レポート編として売上パフォーマンスと在庫最適化の2つの視点から、レポートの設計と作成方法について紹介しました。
日々の業務判断に活用できるよう、KPIカードやグラフ、構成比の可視化、商品別在庫ステータスの判定など、実務に即したレポート構成を実装する手順を解説しました。
※なお、本記事で使用したデータはデモデータであり、在庫数量と販売数量の比率、カテゴリごとの販売傾向などは、実際の店舗運営とは異なる場合があります。
次回のダッシュボード編では、ダッシュボードの作成からアラート通知の自動化まで取り組みます。