ナレッジベース

計算エディターでの集計エラーのメッセージ


発行: 11 Jan 2016
最終修正日: 20 Jul 2023

問題

計算の作成中に、次のいずれかのエラーが発生することがあります。
 
  • "Cannot mix aggregate and non-aggregate arguments with this function." (Option 1,2,3 or 4 can be used). ("この関数に集計および非集計の引数を混在させることはできません。" (オプション 1、2、3、または 4 を使用できます))
  • "All fields must be aggregate or constant when using table calculation functions or fields from multiple data sources." (Option 1 or 3 can be used). ("表計算関数または複数のデータ ソースからのフィールドを使用する場合、すべてのフィールドを集計または定数にする必要があります" (オプション 1 または 3 を使用できます))
  • "Argument to sum (an aggregate function) is already an aggregation, and cannot be further aggregated."  (Option 2, 3 or 4 can be used). ("SUM (集計関数) への引数は既に集計であり、さらに集計することはできません。" (オプション 2、3、または 4 を使用できます))

環境

Tableau Desktop

解決策

オプションごとに値が異なる場合があります (具体的な例については、右側のペインの添付のワークブックと追加情報のセクションを参照してください)。
 

オプション 1 (すべてのフィールドを集計)

すべてのフィールドを集計で囲みます。

サンプル (LOD を使用しない):
[Profit] / SUM ([Sales]) -> SUM ([Profit]) / SUM ([Sales])

サンプル (LOD を使用する):
RANK( {fixed: SUM([Sales])} ) --> RANK( SUM( {fixed: SUM([Sales])} ))
 

オプション 2 (すべてのフィールドで集計を削除)

すべてのフィールドから集計を削除します。

サンプル (LOD を使用しない):
[Profit] / SUM ([Sales]) ->[Profit] / [Sales]

サンプル (LOD を使用する):
[Profit] / SUM ([Sales]) ->[Profit] / { fixed: SUM ([Sales]) }
 

オプション 3 (すべてのフィールドで集計を削除してから計算を集計。)

計算が集計されるように、集計を移動します。

たとえば、計算
IF [Row ID] = 1
THEN SUM( [Sales] )
END

は、次のようにできます。
SUM(
IF [Row ID] = 1
THEN [Sales]
END )

オプション 4 (詳細レベルを使用してフィールドの集計を削除)

詳細レベル (LOD) の式を使用して、集計を非集計にします。すべての LOD 式は非集計の値を返します。

[Sales]/SUM( [Sales] ) -> [Sales]/{FIXED: SUM( [Sales] )}

原因

"この関数に集計および非集計の引数を混在させることはできません。"
- すべてのフィールドが同じ集計 (集計されている、または集計が削除されている) である必要があります。集計はビューの詳細レベルで計算され、いくつかのレコードに対して 1 つの値が返されます。非集計フィールドは参照元データのすべてのレコードに対して計算され、1 レコードにつき 1 つの値が返されます。

"表計算または複数のデータ ソースからのフィールドを使用する場合、すべてのフィールドを集計または定数にする必要があります"
-  表計算をブレンドまたは使用する場合、すべてのフィールドを集計する必要があります。

"SUM への引数 (集計関数) は既に集計であり、さらに集計することはできません。"
- 集計フィールドを再度集計することはできません。

詳細情報

フィールドを集計するかどうかを決める方法。

参照元データからインポートされたフィールドや詳細レベル (LOD) の式は SUM()、MIN()、ATTR() などの集計で囲むまで、常に非集計です。すべての集計関数の全リストを参照するには、関連リンク セクションの「集計関数」の記事をご覧ください。

計算フィールドは、集計の使用方法に応じて集計または非集計にすることができます。集計が使用されていない場合や、最も外側の式が LOD 式である場合は、計算により非集計の結果が返されます。

フィールドが集計かどうかを決める 1 つのテクニックとして、フィールドをビューに追加します。フィールドに AGG("フィールド名") と表示される場合、そのフィールドは既に集計済みです。


例:

参考用に示したサンプル データ セットを使って各オプションがどのように機能するかを、以下で説明します。

サンプル データ セット
行 ID収益売上高
110030
25060
3710



オプション 1 


式:
SUM ([Profit]) / SUM ([Sales])

結果:
(100 + 50 + 7) / (30 + 60 + 10) =  157/100  = 1.57
 

オプション 2

[Profit] / [Sales]

結果: (ビューの集計が SUM であると仮定)

100/30 + 50/60 + 7/10 = 3.333 + .833 + .7 = 4.867
 

オプション 3

結果:
30 + 0 + 0 = 30
 

オプション 4


「詳細レベルの計算」を参照してください

詳細レベルの式は、常に集計以外の結果を返し、集計が行われるレベルの指定に使用できます。

[Sales]/{FIXED: SUM( [Sales] )}

結果: (集計が SUM であると仮定)

30/100 + 60/100 + 10/100 = 3+60+10 = .3 + .6 + .1 = 1
 

この記事で問題は解決しましたか?