【Salesforce】結合レポートの結果が異なる時の原因を切り分ける手順

【Salesforce】結合レポートの結果が異なる時の原因を切り分ける手順
🛡️ 超解決

Salesforceの結合レポートは、異なるオブジェクトのデータを1つのレポートにまとめられる便利な機能です。しかし、いざ作成してみると「数字が合わない」「レコードが重複する」「期待した行が表示されない」といった問題に直面することがあります。そうした場合、原因を体系的に切り分けなければ、闇雲に修正を繰り返してしまうことになります。この記事では、結合レポートが想定と異なる結果になる原因を、具体例を交えながらステップごとに確認する方法を解説します。まずは基本構造を理解した上で、実際のトラブルシューティング手順を進めてください。

【要点】この記事で確認すること

  • 最初に見る場所: 各ブロック単体でレポートを実行し、ブロック単体の結果が正しいかどうかを確認します。単体で正しければ結合の仕方やフィルターに問題がある可能性が高まります。
  • 切り分けの軸: レポートタイプ(標準 vs 結合)、ブロックの結合方式(「結合」と「サブレポート」の違い)、フィルターの適用範囲(ブロック内 vs レポート全体)、アクセス権の4軸で整理します。
  • 注意点: 結合レポートの共有設定やレポートフォルダの権限は、各ブロックのレコードに対するアクセス権とは独立している場合があります。管理者に確認せずにレポートを公開すると、予期しないデータ漏洩のリスクがあるため注意してください。

ADVERTISEMENT

1. 結合レポートの基本構造とよくある誤解

結合レポートは、複数の「ブロック」と呼ばれるレポート単位を組み合わせて1つのレポートとして表示する機能です。各ブロックはそれぞれ独立したレポートタイプ(例:商談レポート、活動レポート)を持ち、フィルターや表示項目も個別に設定できます。しかし、この独立性が原因で予想外の結果が生じることがあります。

標準レポートとの違い

標準レポートは単一のオブジェクト(または親子関係のあるオブジェクト)を対象にします。一方、結合レポートは全く異なるオブジェクト(例:商談とケース)を横断して比較できるのが特徴です。ただし、結合レポートではブロック間のデータが自動的に関連付けられるわけではないため、たとえば「同じアカウントに属する商談とケースを横に並べたい」という場合には、ブロックごとに同じフィルター条件(アカウントIDなど)を手動で設定する必要があります。

ブロックの結合方式:「結合」と「サブレポート」の違い

結合レポートを作成する際、ブロックは「結合」または「サブレポート」として追加できます。結合は各ブロックを独立したセクションとして上下に並べる方式で、ブロック間に共通の項目(例:行ラベル)が自動的にまとめられません。サブレポートは、メインブロック内に別のブロックを埋め込む方式で、親子関係のあるデータを階層的に表示したい場合に適しています。しかし、サブレポートはメインブロックの集計に影響を与えず、単に詳細として表示されるだけなので、「合計値がブロック全体で計算されない」という誤解を招きやすい点に注意が必要です。

2. 想定と違う結果になる原因を切り分ける手順

以下の手順を順番に実施することで、原因を特定できます。各ステップで確認すべきポイントを詳しく説明します。

  1. 各ブロックを単体で実行して結果を確認する
    結合レポートを開き、ブロックごとに「レポートの編集」画面で単体のレポートとして実行します。このとき、ブロック単体で得られるレコード数や集計値が自分の想定と一致しているか確認してください。もし単体で既にズレているなら、そのブロックのレポートタイプやフィルター設定が間違っている可能性があります。
  2. ブロック間で共通フィルターを比較する
    結合レポートでは、各ブロックに個別のフィルターを設定できます。しかし、「同じ条件で絞り込んでいるつもり」でも、実際にはフィルターの値が異なっているケースがよくあります。たとえば「今年の商談」と「今年のケース」を比較したい場合、商談ブロックでは「作成日=今期」、ケースブロックでは「作成日=今年」というように異なる定義になっていると、結果が合わなくなります。すべてのブロックで日付範囲や条件値を統一してください。
  3. クロスフィルターが期待通りに動いているか確認する
    結合レポートには「クロスフィルター」という機能があります。これは、あるブロックのデータを使って別のブロックのデータを絞り込むものです。たとえば「取引先責任者ブロック」で「商談金額が100万以上の商談を持つ取引先責任者」だけを表示する場合、クロスフィルターの設定が正しいかを確認します。クロスフィルターは「すべてのブロックに対して適用」と「特定のブロックのみに適用」を選択できます。想定と違う絞り込みがかかっている場合は、この設定を見直してください。
  4. レコードの重複や除外をチェックする
    結合レポートでは、同じレコードが複数のブロックに表示されることがあります。たとえば「商談」と「活動」の両方に関連する取引先責任者がいる場合、両方のブロックにそのレコードが現れると、重複してカウントされているように見えることがあります。これは結合レポートの仕様上避けられない場合もありますが、集計方法(カウント vs 個数)を変更することで対処できることがあります。また、アクセス権の違いによって一部のレコードが表示されない場合もあるため、共有設定の影響も考慮します。
  5. レポートタイプの制限を確認する
    結合レポートで使用できるレポートタイプは、標準レポートタイプか、ユーザが作成したカスタムレポートタイプかに依存します。カスタムレポートタイプの中には、結合レポートで使用できないものもあります。また、レポートタイプの「リレーションシップ」の設定によって、参照可能なオブジェクトやフィールドが異なります。レポートタイプの定義を見直すことで、データが欠落している原因を特定できる可能性があります。

3. 失敗パターンと判断基準の具体例

実際によく発生するトラブルパターンと、その判断基準を表にまとめました。自分の症状と照らし合わせて、どの原因に該当するかを考えてみてください。

症状 考えられる原因 確認方法
各ブロックの件数は正しいが、全体の合計が一致しない ブロック間で集計項目の定義が異なる(例:一方は「金額」、もう一方は「金額(税込)」) 各ブロックの表示列を確認し、集計対象のフィールドが同じであるか比較する
想定よりもレコードが少ない クロスフィルターが意図せず絞り込んでいる、またはアクセス権で一部のレコードが見えない クロスフィルターを一時的に解除してレコード数が増えるか確認し、増えなければ共有設定を管理者に問い合わせる
同じレコードが複数行に重複して表示される ブロック間でレコードの関連が正しく設定されていない、または結合レポートの仕様による重複 重複しているレコードが本当に同じデータか確認し、異なるオブジェクトからの重複であれば回避策として集計方法を変更する
サブレポートの内容がメインブロックの集計に反映されない サブレポートは詳細表示用であり、集計には含まれない仕様 サブレポートではなく「結合」方式でブロックを追加することで、独立した集計行が表示される

4. 管理者に確認する情報と再発防止

自分で設定を確認しても解決しない場合、管理者にエスカレーションする必要があります。その際、伝えるべき情報を整理しておくと、原因特定がスムーズになります。

管理者に伝えるべき内容

  • 事象の再現手順: どの結合レポートのどのブロックで、何を期待して、実際に何が表示されたかを具体的に記録します。スクリーンショットを添付すると効果的です。
  • 使用しているレポートタイプ: 各ブロックがどのレポートタイプに基づいているかを伝えます。カスタムレポートタイプの場合は、その定義の詳細も共有してください。
  • アクセス権の確認依頼: 自分に表示されないレコードが、他のユーザには表示されるかどうかを確認してもらいましょう。共有設定やロール階層が影響している可能性があります。
  • システム管理者のみが変更できる設定: 結合レポートの「レポートフォルダの共有設定」や「レポートタイプの編集権限」は、システム管理者しか操作できません。これらの設定に問題がないか確認を依頼します。

レポート設計のベストプラクティス

  • 事前にブロック単体のレポートを保存しておく: 結合レポートを作成する前に、各ブロックに対応する標準レポートを個別に作成し、結果が正しいことを確認します。これにより、結合時に問題が発生した場合の切り分けが容易になります。
  • フィルターは可能な限り統一する: 複数のブロックで共通の条件(例:同じ年のデータ)を使う場合は、フィルターの定義をコピー&ペーストして完全に一致させます。日付範囲の指定方法(「今期」「今年」「カスタム範囲」)は常に同じ方法を使うことを推奨します。
  • 結合レポートのテスト環境を用意する: 本番データで試す前に、サンドボックス環境で同じレポートを作成して動作を確認します。特にアクセス権の影響を受けずにレコード全体を確認できるため、原因の切り分けに役立ちます。

5. よくある質問(FAQ)

ここでは、結合レポートに関するよくある質問とその回答をまとめました。

  1. Q: 結合レポートで「最大100ブロック」と表示されるが、それを超えるブロックを追加することはできますか?
    A: いいえ、システム制限として100ブロックが上限です。それ以上必要な場合は、複数の結合レポートに分割して対応する必要があります。
  2. Q: ブロック間でデータを結合する(SQLのJOINのような)ことはできますか?
    A: 結合レポートは横に並べて表示する機能であり、ブロック間でのデータの結合(マージ)はできません。共通の項目を使って並べ替えやフィルタリングは可能ですが、データ自体が1つのテーブルに結合されるわけではありません。
  3. Q: 結合レポートをスケジュール配信したいのですが、注意点はありますか?
    A: スケジュール配信は可能ですが、配信先ユーザのアクセス権によって表示されるレコードが異なる場合があります。受信者ごとに適切な権限があるか確認してください。また、PDF形式で配信する場合、書式が崩れることがあるため、事前にテスト配信することをお勧めします。
  4. Q: 結合レポートのパフォーマンスが遅い場合の対処法を教えてください。
    A: ブロック数が多い、または各ブロックのデータ量が多い場合、パフォーマンスが低下することがあります。不要なブロックやフィルターを削除し、集計項目を最小限にしてください。また、レポートの「レポートの最適化」オプションを有効にすると、処理速度が向上する場合があります。

6. まとめ

結合レポートが想定と違う結果になる原因は、主にブロック単体の設定ミス、フィルターの不一致、クロスフィルターの誤設定、アクセス権の制限、レポートタイプの制約に集約されます。まず各ブロックを独立して確認し、その後にブロック間の整合性を検証するという手順が有効です。管理者に相談する際は、再現手順やレポートタイプの情報を整理して伝えることで、解決が早まります。最後に、常にサンドボックスでの動作確認を習慣づけることで、本番環境でのトラブルを未然に防ぐことができます。


この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。