HubSpotでレポートを作成する際、「商談化率」や「成約率」といったパーセンテージ(%)を棒グラフで表現しようとして、以下のような壁にぶつかるケースが非常に多く見られます。
実は、HubSpotのカスタムレポート(数式フィールド)は、「データ全体を一度俯瞰して、全体の件数を分母にして割り算する」という処理がシステムの構造上、少し苦手という特性があります。
そのため、普通に割り算のレポートを作ろうとすると設定が行き詰まり、結局Excelにデータをエクスポートして手計算している担当者の方も少なくありません。
この記事の設定を行うことで、外部ツールを使わずにHubSpot内で直接、以下のような「%表示の棒グラフ」を自動生成できるようになります。
一度ダッシュボードに配置すれば、データはリアルタイムで自動更新されます。営業活動のどこにボトルネック(停滞)があるのか、どのパイプラインが好調なのかをひと目で判断できるようになります。
HubSpotのグラフ機能でスマートに割合(%)を表示させるために、データ分析の世界でよく使われる「1と0のフラグを立てて、その平均を取る」(平均参照ロジック)というテクニックを使用します。
一見すると回りくどい裏ワザのように思えますが、数学の仕組み上、本来やりたい割り算と完全に同じ結果になります。
私たちが頭の中で考えている「割合」の計算式と、HubSpotにやらせる「平均値」の計算式を並べてみると、実は分子と分母が全く同じであることが分かります。
① 本来やりたい「割合」の式 ② HubSpotが計算する「平均値」の式
ここで、「条件に合うなら1、合わないなら0」というルール(行レベルの判定)を与えると、
②の式は以下のように変わります。
0は何回足しても数値が増えないため、合計値は純粋に「1(対象者)の件数」になります。つまり「1と0の平均を出す」という処理は、自動的に「対象の件数 ÷ 全体の件数」の割り算をしていることと同じになります。
HubSpotのシステムにとっては、「データ1行ごとに1か0かを判定し、最後にその平均を出す」という処理の方が圧倒的に負荷が軽いため、エラーを起こさずスムーズにグラフを描画できるのです。
HubSpotでパーセンテージを算出・表示する方法はいくつか存在します。
それぞれの特徴と、今回の「0・1制御(平均参照ロジック)」と比較した際の使い分けを表に整理しました。
算出方法 得意なシーン
(活用例)メリット 注意点・考慮すべきポイント 今回の方法
(0・1制御)との比較①1と0の平均ロジック 月別推移の可視化、施策別や担当者別の成果比較 どのような切り口(X軸)でもエラーを起こさずに綺麗な棒グラフが作れる 事前に「内部値」を調べたり、数式(if文)を記述したりする初期設定の手間がある 他のオブジェクトを組み合わせたレポートでも、データの重複カウントや集計エラーを完全に回避できる強力な手法 ②標準の「ファネルレポート」機能 営業プロセス全体の歩留まりや遷移率を直感的に把握したいとき 数式を組む必要がなく、数クリックで直感的なファネル図(逆三角形の図)が完成する 特定の2つのステージ間の比較に特化しているため、柔軟なカスタマイズがしにくい 「今月の商談化率は先月と比べてどう変わったか」という時系列での推移を棒グラフで並べることができない ③数式なしの「円グラフ」表示 現在のコンタクトや商談の「最新の内訳・構成比」をパッと見せたいとき 数式が不要。現在の全体バランスを視覚的にすっきり見せたいときに最適 棒グラフにできないため、データの推移や並列の比較には向いていない 円グラフは「現在の1つの断面(スナップショット)」しか表現できないため、多角的なクロス集計(月別×施策別など)ができない ④ 集計関数(COUNT等)による直接の割り算 単一のオブジェクト内での単純な割り算(例:商談数に占める受注商談数など) 頭の中で考えている計算式(分子 ÷ 分母)をそのまま直感的に記述できる データの組み合わせや、X軸に置く項目によっては、システム側で処理できずにエラー(集計エラー)が発生しやすい 「1人のコンタクトに2つの商談が紐付いている」場合などに、データが複製されて分母が多くカウントされ%がズレる罠がある。0・1制御は最初に行レベルでフラグを確定させるため、データ重複による集計崩れが起きない。 結論:なぜ今回の方法がベストなのか?
単に「現在の内訳を見たいだけ」なら円グラフ
「全体の歩留まりを見たいだけ」ならファネルレポート
が手軽です。
しかし、「先月と比べて商談化率は上がったか?(推移)」「A施策とB施策、どちらが成約率が高いか?(比較)」を棒グラフでクリアに可視化したい場合は、エラーが起きず確実に集計できる平均参照ロジック(0・1制御)が最適な選択肢になります。
数式を作成する前に、対象となるステージや選択肢の「内部値」を確認する必要があります。
※内部値とは、画面上の日本語名(表示ラベル)ではなく、HubSpotのシステムが裏側で認識している英語や数値の「識別名」のことです。数式にはこの内部値を入力します
salesqualifiedlead など)をコピーしてメモしておきます。closedwon や数字の羅列など)が表示されるので、これをメモしておきます。
メニューの [レポート] > [レポート] から [レポートを作成] > [カスタムレポートビルダー] を選択して進めます。
自社の環境に合わせて、以下のテンプレートの"【確認した内部値】"の箇所を書き換えて数式を作成してください。
コンタクト(顧客)全体の中で、特定のステージに進んだ割合を算出します。
*レポート作成から式フィールドを選択し、下記数式を入力
if([CONTACT.lifecyclestage] == "【確認した内部値】", 1, 0)
||(または)で繋ぎます。if([CONTACT.lifecyclestage] == "【内部値1】" ||
[CONTACT.lifecyclestage] == "【内部値2】", 1, 0)
動いている商談全体の中で、無事に特定のステージ(例:成約など)となった割合を算出します。
左メニューの [カスタム数式を追加] をクリックし、以下の条件を入力します。
if([DEAL.dealstage] == "【確認した内部値】", 1, 0)
数式ができたら、最後に棒グラフとして組み立てます。
これで、プレビュー画面に自社のデータに合わせた「%表示の棒グラフ」が表示されます。問題がなければ右上の [保存] をクリックして完了です。
この「1と0の平均ロジック」は、標準の項目だけでなく、自社で独自に作成した項目(カスタムプロパティ)やカスタムオブジェクトにもそのまま応用できます。
プロパティの「データ型(項目の種類)」に合わせて数式をカスタマイズできます。※プロパティや選択肢の「内部名」は、設定の [プロパティ] 画面から事前に確認して入力してください。
if([CONTACT.inquiry_type] == "demo_request", 1, 0)
if([CONTACT.website_visits] >= 5, 1, 0)
if([CONTACT.newsletter_opt_in] == "true", 1, 0)
独自のカスタムオブジェクトを使用する場合、オブジェクト名にポータル固有のID(例:[p1234567_object_name.property_name])が自動付与されていることが多く、手入力ではエラーが起きやすくなります。
カスタムオブジェクトの項目を数式に入れる際は、「レポート作成画面の左メニュー(フィールド一覧)から、対象のプロパティを直接クリックまたはドラッグ&ドロップして数式内に挿入する」のが最も確実でエラーのない方法です。
*計算フィールドで参照する場合は以下になります。(上記固有のIDを参照した場合)
if([[p1234567_object_name.property_name.プロパティの参照名] ==
"選択肢の内部名", 1, 0)
例)このケースは求人カスタムオブジェクトのプロパティを参照した例です。
「1と0に振り分ける」という考え方は万能ですが、プロパティの種類やデータの状態によっては、そのまま数式を組むと狙い通りの%が出ないケースがあります。
1つの項目の中に、複数のチェックを同時に付けられるプロパティです。
== "値" で書くと、「その値だけが選ばれているデータ」しか探せません。他の項目と同時にチェックされているデータが 0 と判定されてしまいます。contains )を使い、以下のように記述します。if(contains([CONTACT.inquiry_type], "demo_request"), 1, 0)
自由記入のコメント欄など、長い文章が入力されるプロパティです。
== での判定は機能しません。未入力の項目が多いプロパティを条件にする場合は、最大の注意が必要です。
「特定の条件を満たしているものを1、それ以外を0にする」という考え方さえ押さえておけば、HubSpot内のほぼすべてのデータから「〇〇率」を自由自在に弾き出すことができます。
自社の営業スタイルやマーケティング施策に合わせて、営業活動を可視化する独自のパーセンテージレポートを作成してみてください!