Tableauで売上を集計したら、元のExcelやSQLの結果と合わない。フィルターを変えても値が動かない。こうしたとき、最初から計算式を書き換えると、別の数字まで変わることがあります。
先に「同じデータを、同じ条件・同じ単位で比較しているか」を確認してください。 そのうえで、値が大きいなら行の重複や集計方法、小さいなら除外された行や更新時点、フィルターを変えても動かないなら計算とフィルターの適用順を調べます。
この記事でわかること
- Tableauの数字が合わない主な原因7つ
- 差が生じた場所を絞る確認順
- 原因ごとの修正方法と、修正後の検算方法
まず確認:比較している「数字の定義」をそろえる
Tableauと元データを比較する前に、次の5点を書き出します。
| 確認項目 | 比較時にそろえる内容 |
|---|---|
| 指標 | 売上、税込売上、返品控除後の売上など、何を足しているか |
| 対象期間 | 開始日・終了日、日付として使う列 |
| 対象データ | ステータス、部署、地域、欠損値などの除外条件 |
| 集計単位 | 1行が注文・注文明細・顧客のどれを表すか |
| 更新時点 | 元データとTableauの抽出がいつの状態か |
例えば、元データは「注文日」で当月の売上を集計し、Tableauは「出荷日」で絞っていれば、両方の計算が正しくても一致しません。また、「注文数」を比較するとき、元データの行数と注文IDの種類数は別の指標です。
まず、食い違う注文IDや日付を数件特定すると、その後の調査が進みます。合計値だけでは、増えた行と消えた行が相殺されている可能性を見落とします。
数字が合わない原因7選:問題から確認箇所を絞る
| 原因 | よくある問題 | 最初に見る場所 |
|---|---|---|
| 1. 集計方法が違う | 件数や平均だけ合わない | ビュー内のメジャーの集計方法 |
| 2. ビューと元データの粒度が違う | 明細は合うが、割合や平均が合わない | [行]・[列]・[マーク]のディメンション |
| 3. 物理結合で行が増減している | JOINを追加してから売上が増えた・減った | [データ ソース]の結合設定 |
| 4. リレーションシップの設定が実データと違う | 複数テーブルを使うと値が変わる | テーブル間の関係とパフォーマンス オプション |
| 5. フィルターの対象・適用範囲が違う | シート間で値が違う | [フィルター]シェルフとダッシュボード |
| 6. FIXED計算とフィルターの順序が違う | フィルターを変えても計算値が動かない | 計算フィールドとコンテキスト フィルター |
| 7. 抽出や参照元が更新されていない | 今日追加したデータが反映されない | 接続の種類と抽出の更新状態 |
1. SUM・AVG・COUNT・COUNTDを取り違えている
原因: Tableauと比較元で集計方法が異なる。
なぜ起きるか: SUMは値の合計、AVGは平均です。COUNTで行を数える場合と、COUNTDで異なるIDの数を数える場合も結果が変わります。Tableauではメジャーの集計方法を変更でき、ビューのフィールド名にも現在の集計が表示されます。
確認方法: ビュー上の対象フィールドの表示がSUM(売上)、AVG(売上)など、比較したい指標と一致するか見ます。注文数なら、元データで数えているのが行数か、重複を除いた注文ID数かを確認します。
対策: 指標の定義を決めてから集計方法をそろえます。COUNTDへ変更して数字が合っても、結合で行が増えた原因まで解決したとは判断しないでください。
2. ビューの粒度と比較元の粒度が違う
原因: 「1行=注文」のデータと、「1行=注文明細」のデータを同じ件数として比べている。または、平均や割合を異なる単位で計算している。
なぜ起きるか: Tableauのビューの詳細レベルは、配置したディメンションによって決まります。顧客別の値を見る場合と、顧客・商品別の値を見る場合では、計算の単位が変わり得ます。
確認方法: [行]、[列]、[マーク]カードにあるディメンションを確認し、各データ表の「1行が何を表すか」を書き出します。合計だけでなく、注文ID別などの小さな単位でも元データと比較します。
対策: 比較する両者の集計単位をそろえます。例えば「1注文あたりの売上」が必要なら、注文単位の売上を作ってから平均を計算する方法を検討します。明細行の売上をそのまま平均した値とは意味が異なります。
3. 物理結合で行が増えた、または消えた
原因: 結合キーが右側の表で重複している、結合条件が足りない、または結合タイプによって未一致行が除外されている。
なぜ起きるか: 例えば注文表の1行に、結合先の履歴表が2行一致すれば、結合結果には注文の売上が2行現れます。その結果をSUMすると、元の売上より大きくなります。反対に内部結合では、一致しない注文が結果から除外されます。Tableau公式の結合トラブルシューティングも、ミスカウント時には結合方法や結合前の集計を検討するよう案内しています。
確認方法: [データ ソース]でテーブル間の結合を開き、結合タイプとキーを確認します。結合前後で注文ID別の行数と売上を比較してください。
対策: 不足している結合条件を修正する、結合先を必要な単位に事前集計する、または分析の目的に合えばリレーションシップを検討します。DISTINCTで見かけの重複を消す前に、どの表のどのキーが複数行あるか特定します。
SQL側でのキー重複・粒度の調べ方は、次の記事で詳しく確認できます。
4. リレーションシップの設定が実データと合っていない
原因: テーブル間の関係で、一意ではないキーを「One (1)」として扱うなど、実データと異なる設定をしている。
なぜ起きるか: Tableauのリレーションシップは、物理結合と同じ方法で常に表を結合する仕組みではありません。ビューで使うフィールドに応じてクエリを構成します。一方、公式資料では、キーが一意でないのにカーディナリティを「One (1)」にすると、重複する集計値が表示される場合があると説明されています。
確認方法: [データ ソース]で表同士がリレーションシップでつながっているか、物理結合されているかを区別します。リレーションシップならキーごとの重複と、カーディナリティ・参照整合性の設定を確認します。
対策: 一意性を確認できないキーを安易に「One (1)」と決めないでください。一致しない行がある可能性も含め、設定を実データに合わせます。設定変更後は、問題が出ていたビューで再度検算します。
5. フィルターの条件や適用範囲が違う
原因: 元データと異なる日付・ステータスを絞っている、または比較しているシート同士でフィルターの条件が異なる。
なぜ起きるか: Tableauのビューには複数の種類のフィルターがあり、適用される段階も異なります。ダッシュボード上の見た目だけを比べると、どの条件が数字を変えたのか見えにくくなります。
確認方法: 問題のシートを開き、[フィルター]シェルフの項目を一つずつ確認します。ダッシュボードでのみ差が出るなら、フィルターをどのワークシートへ適用しているか、フィルター アクションが働いていないかも調べます。
対策: 元データ側と日付列・期間・除外条件をそろえます。検証用にシートを複製し、フィルターを一つずつ外して、どの条件から差が生じるか記録すると安全です。
6. FIXED計算が想定したフィルターに反応していない
原因: {FIXED ...}を使った計算フィールドの値が、通常のディメンション フィルターを操作しても変わらない。
なぜ起きるか: Tableauにはフィルターと計算の操作順序があります。FIXED詳細レベル表現とディメンション フィルターの順序によって、画面上では行が絞られても計算値が期待どおり変化しない場合があります。
確認方法: 対象メジャーが通常のSUM([売上])なのか、{FIXED ...}を含む計算フィールドなのかを確認します。フィルターを外した値、付けた値を、通常のSUMと並べて比べてください。
対策: 「全体の売上を固定して見せたい」のか、「フィルター後の売上を再計算したい」のかを先に決めます。後者なら、計算の作り直しや、該当フィルターをコンテキストに追加する方法を検討します。コンテキストに変更すると他の計算にも影響し得るため、関連するシートの値を再確認します。
7. 抽出が古い、または見ているデータソースが違う
原因: 元データを更新した後も、Tableauが更新前の抽出を参照している。あるいは、比較している接続先自体が違う。
なぜ起きるか: ライブ接続と抽出ではデータの更新方法が異なります。Tableau Desktopの抽出は、元データが変わっただけでは最新の内容に置き換わりません。完全更新と増分更新でも取り込み方が異なります。
確認方法: [データ ソース]で接続先とライブ・抽出の別を確認します。元データで新規追加・修正された数件のIDが、Tableau側に存在するかを比べます。公開データソースを使用している場合は、その抽出の更新状態も確認します。
対策: 権限と運用ルールに従って抽出を更新し、再比較します。過去行の修正が反映されない場合は、増分更新の設定と取り込み対象を確認してください。ライブ接続と抽出の使い分けは、次の記事も参考になります。
具体例:JOINを追加したら売上が2倍になった
次のようなデータを考えます。
注文データ:1行=注文
| 注文ID | 売上 |
|---|---|
| A001 | 100 |
| A002 | 200 |
元データの売上合計は300です。
対応履歴:1行=対応
| 注文ID | 対応内容 |
|---|---|
| A001 | メール |
| A001 | 電話 |
| A002 | メール |
注文IDで物理結合すると、A001の売上100が「メール」「電話」の2行に現れます。結合後の行をそのまま合計すれば、100+100+200=400です。
この場合、最初に直すべき対象はグラフの表示形式ではありません。注文ごとに必要な対応情報を決め、対応履歴を注文単位に集計するか、データモデルを見直します。
ただし、どの直し方が適切かは分析目的によります。 対応ごとの売上を表示したい場合は、注文売上を各対応へどう配分するかという業務上の定義も必要です。「同じ注文の売上を対応件数分だけ足さない」ことと、「対応別売上をどう定義するか」は別の問題です。
修正しても合わないときの再確認
7項目を確認しても差が残る場合は、総額から調べ直さず、差が出る最小単位を探します。例えば全社売上が違うなら月別、月別で違う月が分かれば注文ID別に比較します。
次の順で調べると、原因を絞りやすくなります。
- 差が出る注文IDや日付を数件特定する。
- そのIDについて、参照元・Tableauのデータソース・検証用シートの値を比較する。
- 行自体がないのか、複数あるのか、行は同じで計算結果だけ違うのかを分ける。
- 行が違えば接続・更新・結合・フィルターを、行が同じなら計算式・集計方法・粒度を調べる。
- 修正後は対象箇所だけでなく、全体の合計と関連するシートも確認する。
現場での注意点は2つあります。 第一に、Tableau上の計算式を調整して総額だけ合わせても、元データの重複や欠損は残ります。第二に、総額が一致しても、部署別や月別の内訳が一致するとは限りません。公開前には、少なくとも総額と主要な内訳の両方を検算してください。
まとめ
Tableauの数字が合わないときは、まず指標の定義・期間・対象条件・集計単位・更新時点をそろえます。その後、差の出方に応じて7つの原因を確認します。
- 大きすぎる: 集計方法、物理結合による行の増加、リレーションシップの設定
- 小さすぎる: 除外された行、フィルター、結合タイプ、古い抽出
- フィルターを変えても動かない: FIXED計算とフィルターの操作順序
- 合計だけ合う: 注文ID別・月別など、より細かい単位での差
数字を合わせる作業の終点は、総額が一致した瞬間ではありません。どのデータを、どの単位で、どう計算した結果なのか説明できる状態まで確認しましょう。
次に読む記事
結合による重複をSQLでも確認したい場合はこちらです。
Tableauの基本操作から整理したい場合はこちらです。
ライブ接続と抽出の違いを確認したい場合はこちらです。
データ分析全般で数字が合わないときの観点はこちらです。


入門で伝わるグラフを作れる人になる|データ・AI学習ロードマップ-160x90.png)


