ナレッジベース

総計および小計に表計算で予想された数が表示されない


発行: 03 Jul 2013
最終修正日: 15 Dec 2023

問題

表計算を使用する場合、総計と小計に予期しない結果が表示されることがあります。総計の集計タイプを [自動] 以外に変更するオプションが灰色表示になっています。

たとえば、ビューには四半期間の地域別の平均売上高の差が表示されています。自動総計に誤りがあり、地域ごとの平均売上高の差の合計ではなく、四半期全体の平均売上高の差を表示しています。

環境

  • Tableau Desktop
  • 表計算

解決策

オプション 1: LOD 関数を使用した計算の書き換え

場合によっては、表関数の代わりに詳細レベル (LOD) 関数を使用して計算を書き換えできることがあります。詳細については、「Tableau での詳細レベルの式の作成」を参照してください。

計算の書き換え後、総計を [次を使用して合計] の設定を使用して変更できます。説明については、「合計の集計の構成」を参照してください。
 

オプション 2: ビューに詳細を追加し、表計算を調整する

合計は、[行] シェルフの詳細を無視する特別な行です。このため、表計算は総計の正しい詳細レベルで強制的に実行されるため、ビューに他のディメンションを追加することが必要です。その後、ビューに含まれるすべてのメジャーを、追加ディメンションに対応するように変更する必要があります。

以下の説明は、この記事の右側にある [添付ファイル] セクションのワークブックの "例 1: 元のビュー" ワークシートから始まります。元のビューの作成方法に関する指示は、このワークブック内に埋め込まれています。
  1. [行] シェルフの各ディメンションで、データ ペインのディメンションを右クリックして [複製] を選択します。この例では、[Region (地域)] のみが [行] シェルフにあります。
  2. [Region (copy) (地域 (コピー))] を [マーク] カードの [詳細] にドラッグします。
  3. 計算フィールドを作成します。
    1. [分析] > [計算フィールドの作成] を選択
    2. [計算フィールドの作成] ダイアログボックスで、次の操作を行い、[OK] をクリックします:
    3. フィールドに名前を付けます。例では、このフィールドは「New Difference Between Average Sales (新しい平均売上高間の差)」と名付けられています。
    4. 次の式を入力します。
      IF FIRST() = 0  
      THEN WINDOW_SUM([Difference Between Average Sales])  
      END
  4. [マーク] カードの [テキスト] で [Difference Between Average Sales (平均売上高間の差)] を [New Difference Between Average Sales (新しい平均売上高間の差)] で置き換えます。
  5. ビューで [New Difference Between Average Sales (新しい平均売上高間の差)] を右クリックし、[表計算の編集…] を選択します。
  6. [表計算] ダイアログで、次を実行してからダイアログを閉じます。
    1. [ネストされた計算] にあるドロップダウンで、[Difference Between Average Sales (平均売上高間の差)] を選択します。
    2. [表 (横)] の選択に関する注意事項: これは元のビューの [Difference Between Average Sales (平均売上高間の差)] の [次を使用して計算] の設定です。
    3. [ネストされた計算] にあるドロップダウンで、[New Difference Between Average Sales (新しい平均売上高間の差)] を選択します。
    4. [特定のディメンション] を選択する
    5. 重複するフィールドのみにチェックを入れます。この例では [Region (copy) (地域 (コピー))] です。
  7. [分析] > [スタック マーク] > [オフ] に移動します

原因

合計で [次を使用して合計] > [自動] に設定すると、(ビュー内の表が存在しないかのように) データ セット全体でメジャーが計算されます。表計算で加算集計のみが使用されている場合、自動総計は通常正しくなります (SUM() など)。たとえば、各売上高の合計は顧客あたりの売上高の合計をまとめたものと同じになります。

表計算が非加算集計 (除算、乗算、MIN()、AVG() など) を使用するフィールドを参照する場合、合計はビュー内の数値の合計と等しくなりません。たとえば、各売上高の平均 (または全体の平均) は各顧客の売上高平均をまとめたものとは異なります。

現在、自動合計のみが表計算で使用可能です。この機能を今後の製品リリースに組み込むことに賛成する方は、次の Community Idea に投票してください。Totals and subtotals over displayed marks instead of separate calc (aka make subtotals work like Excel)

詳細情報

表関数を使用しないフィールドで問題が発生している場合、設定を使用して合計を変更できる場合があります。説明については、「合計の集計の構成」を参照してください。


オプション 2 の注意事項:

  • 添付のワークブックには、他の使用事例を扱う他の例が含まれています。
  • WINDOW_SUM() 関数は、[次を使用して合計] > [合計] を使用するのに似ています。他の総計の集計では対応する表関数を使用します (平均合計には WINDOW_AVG()、最小合計には WINDOW_MIN()、自動合計には TOTAL() など)
  • この例では [列の総計] を使用しており、ビューに行として表示されます。[行の総計] を使用するビューに関しては、"行" を "列" で置き換えるという同様の指示に従います。
  • 元のビューに複数のメジャーが含まれる場合、そのメジャーが表計算ではないとしても、すべてのメジャーは手順 3 でのように計算に変換する必要があります。詳細については、添付されているワークブックの例 2 を参照してください。
  • この例では、元の表計算は [行] シェルフにあるすべてのディメンションによりパーティション化されました (または、表計算ダイアログで [Region (地域)] のチェックが外されました)。元の表計算が重複するディメンションを扱う場合、手順 6-2 で重複するフィールドにもチェックを入れる必要があります。詳細については、添付されているワークブックの例 4 を参照してください。
  • 手順 6 では、LOOKUP() である [Difference Between Average Sales (平均売上高間の差)] の表関数に対して、また FIRST() および WINDOW_SUM() である [New Difference Between Average Sales (新しい平均売上高間の差)] の表関数に対して別個の [次を使用して計算] を設定しています。ネストされた表計算での [次を使用して計算] の設定方法については、「表計算のカスタマイズ」を参照してください。
この記事で問題は解決しましたか?