[Power BI] ファネルチャートの使い方ガイド(ボトルネックの可視化)

ブログのアイキャッチファネルチャートの使い方ガイドボトルネックの可視化

このページでは、Power BIに標準で搭載されているファネルチャート(じょうごグラフ)の効果的な使い方を紹介します。特に通常の方法では可視化が難しい、次のステップの移行率も加味した表示方法も合わせて説明します。
使用する関数:CROSSJOIN関数、GENERATESERIES関数

目次

ファネルチャートとは?データの可視化に役立つ理由

ファネルチャート(じょうごグラフ)は、営業の商談情報や顧客の進捗状況を一目で理解できる視覚的ツール(グラフ)です。特に、商談の各ステップ(例:リード、提案、商談成立)やウェブサイト上での行動を順番に表示することで、どこで顧客が離脱しているのかといったボトルネックを簡単に把握できます。

ファネルチャートを使用しているイメージ。

このグラフを使用すれば、営業活動やウェブサイト上でのユーザの行動の改善点を見つけやすくするため、非常に有用なチャートです。

Power BIでファネルチャートを作成する方法

Power BIでファネルチャートを作成するだけであれば簡単です。まず、営業データをインポートし、「ファネルチャート」を選択します。その後、商談の進捗に関するデータを軸に設定して、各段階の情報を入力します。Power BIはデータを自動的に処理し、ファネルチャートを視覚的に表示してくれるので、すぐに結果を確認できます。

今回は、下記のようなサンプルデータを基に可視化してみます。

サンプルデータの例

データ数は150としています。

サンプルデータの概要

営業活動を管理するCRMからデータをインポートするイメージで、各商談ごとに現在のステータス情報を持っている想定です。
このサンプルデータでは、アプローチ案件化提案実施受注交渉受注といった、5つのステップがステータス列に保管されるものとします。

サンプルデータを使ってファネルチャートを作成してみました。ステータスは現在のステップであり、保有している商談全体の現在の状態を理解することに役立ちます。

PowerBIに搭載されている標準のファネルチャートを使用してグラフを作成。

ステータス列はそのままだと、アプローチ案件化提案実施受注交渉受注といった順番にならないので、並び変え用のテーブルを作成して、リレーションシップを組んでからステータスの順番を制御しています。

並べ替え用のテーブル
テーブルとのリレーションシップ。

次のステップへの移行率をファネルチャートで可視化する方法

この記事の本題です。上述の方法では、ステップ間の比較ができずに、直観的にどの程度次のステップに移行しているかの判断が付きません。たとえば、受注で表示のある24.4%は、全体(150件)の比率ではなく、現在のアプローチ中の商談(45件)をもとにした比率です。

DAX関数を組み合わせて、全体の商談データを基にしたファネルチャートで表示するためのデータテーブルを作成し、この問題を解決する方法を紹介します。

ファネルチャート用のテーブルを作成

上述のすべての案件数を分母として、ファネルチャートを作成するために新しいテーブルを作成します。
テーブル名は_ファネルチャートとします。

新規でテーブルを作成する方法の紹介
_ファネルチャート = 
var _approach = CROSSJOIN(
    GENERATESERIES(1,1,1),
    SELECTCOLUMNS(FILTER(Sheet1,[ステータス]="アプローチ"),"商談ID",[商談ID])
)
var _opportunity = CROSSJOIN(
    GENERATESERIES(1,2,1),
    SELECTCOLUMNS(FILTER(Sheet1,[ステータス]="案件化"),"商談ID",[商談ID])
)
var _proposal = CROSSJOIN(
    GENERATESERIES(1,3,1),
    SELECTCOLUMNS(FILTER(Sheet1,[ステータス]="提案実施"),"商談ID",[商談ID])
)
var _negotiation = CROSSJOIN(
    GENERATESERIES(1,4,1),
    SELECTCOLUMNS(FILTER(Sheet1,[ステータス]="受注交渉"),"商談ID",[商談ID])
)
var _order_received = CROSSJOIN(
    GENERATESERIES(1,5,1),
    SELECTCOLUMNS(FILTER(Sheet1,[ステータス]="受注"),"商談ID",[商談ID])
)

RETURN
UNION(_approach,_opportunity,_proposal,_negotiation,_order_received)

このDAX式では、CROSSJOIN関数とGENERATESERIES関数を使って、現在のステータスを基準に前のステータスに該当するレコードを作成しています。GENERATESERIESで定義した列[Value]は、各商談のステータスを表す数字とし、1:アプローチ、2:案件化、3:提案実施、4:受注交渉、5:受注と今回はしました。定義した各ステータスのテーブルをUNION関数で結合しています。

たとえば、提案実施を表す _proposalは、GENERATESERIES関数で、現在のステータス含めた1:アプローチ、2:案件化、3:提案実施の列[Value]を作成します。(商談のステップで提案実施は3つ目なので、GENERATESERIES関数の2個目の引数は”3″にしています。)SELECTCOLUMNS関数で現在のステータスが提案実施の商談IDのみを抜き出し、それらのデカルト積ををCROSSJOIN関数で計算します。

ファネルチャート用の表示名を作成する

作成した_ファネルチャートテーブルは作成したままだと、商談IDと各ステータスを表す数字の組み合わせのテーブルです。このままでファネルチャートを作成しても意味が分からないので、数字に対応する表示名称を作成します。

ファネルチャートに表示するための列を追加する方法。
ステータス名 = 
SWITCH(
    [Value],
    1,"アプローチ",
    2,"案件化",
    3,"提案実施",
    4,"受注交渉",
    5,"受注"
)

これで、ファネルチャート用のテーブルは作成は完了です。
後は作成した商談IDと、ステータス名をファネルチャートで表示することで、全体の商談における各ステップの進捗を表示することができ、ボトルネックの確認が容易になります。

作成した_ファネルチャートテーブルを使用してファネルチャートを作成した様子。

まとめ

  • ファネルチャートをデフォルトで活用すると、現在のステップを基準に表示できる。
  • 全てのデータを基準にしてファネルチャートを作成するには、テーブルを新規で作成する必要がある。
    この記事では、GENERATESERIES関数を使って現在のステータスを基準に過去のステータスを補完した。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

技術系職社会人:業務でPowerBI を活用/データ分析/インドア派/趣味:ゲーム、カプセルトイ収集/[III]Mosnterが好き/勉強中:Blender/日々習得した内容をアウトプットしていきます!

目次