計算フィールドで全体数を算出して比較したい

お世話になっております。
図A~E列のようなデータセットがありますが、これに全体数のフィールド(F列)を追加して
全体との比較を行いたいと思っています。

まず、E列(売上)を合計しようと以下の計算フィールドを作ったところエラーになりました。
【計算フィールド】sum({売上})
【エラーコメント】「SUMやSUM~~~~のような集計関数のネスティングは許可されません。

元々{売上}も計算フィールドで①+②-③をして作成した項目だから
このようなエラーになるのでしょうか?

そして、sumOverでも作成したところ、こちらもエラーとなりました。
【計算フィールド】sumOver(売上,[ ],PRE_FILTER) ※実際は"[“と”]"の間にスペースはありません。
【エラーコメント】計算レベルPRE_FILTERおよびPRE_AGGではオペランドは集計できません。

どのようにすればよいか、ご教示いただけますでしょうか。
よろしくお願いいたします。

@mio さん、ご質問ありがとうございます。

ExcelのテーブルをそのままQuickSight上で同様のテーブルとして以下のように表現したいものと理解しましたが、認識齟齬があればご指摘ください。

この場合、各値は商品名をディメンションとして既に集計されていますが、今回のように、それをさらにディメンションを跨って集計したい場合、既にお試しいただいているようにテーブル計算関数であるsumOverを使うのが最適です。

sumOver関数の計算レベル(calculation level)ですが、今回はビジュアルで集計された後の値をそのまま足し合わせれば良いため、POST_AGG_FILTERとなります。特に明示的に指定しなくてもデフォルト値はPOST_AGG_FILTERですので、以下のような計算式でOKです。

sumOver(sum(売上), [])

ご確認いただけますでしょうか。

ご確認いただきありがとうございます。

認識いただいた通りで問題ありません。
テーブルやグラフで商品毎の売上と全体の売上を比較できるようなビジュアルを作成したいです。

試してみたところ、やはりエラーとなりました。
(項目名が違いますが、質問の[売上]と同じものです)
image

対処方法はありますでしょうか。

何度もすみません。

ちなみにフィルターもコントロールに付けて、
特定の商品のみ絞って表示することもしたいと考えています。

手さぐりですが下記のように作成しフィルターを設定したところ、
[売上]、[全体]ともにフィルターが反映された同じ値が表示されてしまいました。
sumOver(売上,[ ])

@mio ご確認ありがとうございます。
エラーメッセージを拝見すると、{発生収益} フィールドは以下の計算式になっている理解です。

sum({①初回保証委託料金額}) + sum({②初回保証料ダイレクト金額}) + sum({③初回手数料金額}) + sum({④収益その他}) - sum({⑤代理店手数料})

全てのフィールドをsumで集計いただいていますが、ビジュアルのグループ化の条件のフィールドウェルに{商品名}フィールドを設定していれば、各値はデフォルトで「合計」で自動的に集計されるため、sum関数は以下のように取り払っていただいて良いのではないかと思います。

{①初回保証委託料金額} + {②初回保証料ダイレクト金額} + {③初回手数料金額} + {④収益その他} - {⑤代理店手数料}

次に、フィルターに影響されずに全体の値を集計して表示したい場合、計算フィールドを以下のようにし、PRE_FILTERの計算レベルを指定することで、フィルターが適用される前にsumOverの集計を実行することが可能です。

sumOver(発生収益, [], PRE_FILTER)

以上2点、ご確認いただけますでしょうか。

早速ありがとうございます。

はい、元々はそれぞれの項目を一旦sumにして計算フィールドを作っています。
なぜなら、sumをしないと数字が合わないためです。
下図のようになり、sumにした119~のほうが正しい結果となってしまいます。
→こちらも原因が不明なのでもしお分かりであればご教示いただきたいです。

また、ご教示いただいたsumOverを[発生収益2]のほうで作成しテーブルにしたところ
結果が表示されませんでした。

何度も申し訳ございません。
よろしくお願いいたします。

横からすいません。
今一度やりたいことと、データを整理した方が良いと感じました。

データは以下の構造であってますでしょうか?商品名は重複なく1行ですか?

上記だとして、やりたいことは以下で合ってますでしょうか?

計算フィールドは以下の通りです。

発生収益:
{①初回保証委託料金額} + {②初回保証料ダイレクト金額} + {③初回手数料金額} + {④収益その他} - {⑤代理店手数料}

全体発生収益:
sumOver(sum(発生収益), [])

SUMしないと全体合計が合わないとのことでしたので、例えば各金額が小数点以下存在する、同一商品が複数行ある、といった話があるのかな?と思った次第です。
ご確認よろしくお願いします。

ご確認ありがとうございます。

データの構造は下図の通り、(加盟店+営業所+商品)で一意となります。

やりたいことは作成いただいた通りで合っております。
この内容で作成すると、全体数の表示はできましたが、
やはり全体数が①+②+③+④-⑤の計算結果と一致しません。

一番下の表は個別にみた時の表ですが、
こちらの表では①+②+③+④-⑤の計算結果が[発生収益2]と一致しますが、
赤枠で囲っているようにテーブルで加盟店・営業所・商品を表示するとしないとで
値が異なってしまいます。

また、小数点以下が存在する項目はありません。
よろしくお願いいたします。

@mio さん、情報のご提供ありがとうございます。
例示いただいたExcelのデータそのままに試すとsumOver関数↓

sumOver(発生収益, [], PRE_FILTER)

が正しく機能しているのがお分かりいただけるかと思います。

そのため解決の方向性としては正しそうなのですが、sumOverで集計した数字が合わないというのは何か別のところに原因がありそうに思えます。

最後に頂いたテーブル2つについて、私が貼った画像のように、フィールドリストおよびフィールドウェルの設定も含め、テーブルの項目を漏らさずに画面ショットで共有いただくことは可能でしょうか。(問題が再現できていればダミーデータで構いません。)

お手数ですがよろしくお願いします。

お世話になっております。
確かに作成頂いた図が理想の集計です。

テーブル2つのキャプチャーです。
今回の集計に関係ない部分は一部隠しています。

また、こちらの都合でお返事が2/12以降になってしまいます。
お手数ですがよろしくお願いいたします。

@mio さん、ありがとうございます。
それぞれのテーブルにはどのようなフィルタが設定されているかも教えていただけますでしょうか?フィルタの対象が計算フィールドの場合には、その計算内容も教えていただけると助かります。

1つ目の表についてはフィルターは設定されておりません。
2つ目の表でフィルターを外したところ、「発生収益2」と数字が合うようになりました。
このsumOverがフィルターも考慮される仕様と知りませんでした。大変失礼いたしました。
フィルターを考慮しない、本当の合計を出すことは難しいでしょうか?

また、フィルターを設定していない1つ目の表について、
①+②+③+④-⑤=発生収益2 にならない原因について解明したいです。

@mio さん、お返事ありがとうございます。
「発生収益」および「発生収益2」の計算フィールドは2/5に投稿いただいた内容から変わっていないという理解でよろしいでしょうか。
その場合「発生収益」の方について、内部で利用している計算フィールドを全て教えていただけますでしょうか。

  • ①初回保証委託料金額合計
  • ②初回保証料ダイレクト金額合計
  • ③初回手数料金額合計
  • ④収益その他合計
  • ⑤代理店手数料合計

いずれも単なるsumの計算をしているだけであれば「発生収益」=「発生収益2」となる想定です。

はい、「発生収益」および「発生収益2」の計算フィールドに変更はありません。
各計算フィールドのキャプチャーをお送りさせていただきます。
すべて単純にsumしているだけなのですが、なぜか結果が合わない状況です。
最後の図の表でも①+②+③+④-⑤の計算結果が「発生収益2」の数値になりません。

image

@mio さん、追加の情報ご提供いただきありがとうございます。
五月雨でお聞きしてしまい申し訳ありません。①~⑤のフィールドはデータセット内においてInteger、10進数(固定済み)、10進数(浮動小数点)のどのデータ型になっていますでしょうか?

例えばこれが10進数(固定済み)や10進数(浮動小数点)の場合、全てIntegerに変えると数値が合ったりしますでしょうか?あるいはその逆のパターンなど。お手数ですがご確認いただけると幸いです。

もし上記をお試しいただいても数値が一致しない場合、お手数ですがAWSサポートにてケース起票のご対応をお願いできますでしょうか。サポートケースの作成方法につきましては、こちらのステップをご参照ください。

なお企業でお使いのAWSアカウントの場合、企業の管理者の方を通してケース起票することが必要な場合がございます。この点はお手数ですが貴社内でご確認いただけますと幸いです。

データセットを確認したところ、①~⑤のフィールドはすべてIntegerでした。
image

①~⑤についてそれぞれ「すべて10進数(固定済み)」、「すべて10進数(浮動小数点)」と
変更してみましたが結果は同じでした。

社内でも再検討した上で、必要の際はAWSサポートさまにケース起票させていただきます。
長々とお付き合いいただき誠にありがとうございました。

お試しいただきありがとうございます。
データ型変更後も数値が一致しないとのことで理解しました。お力になれずすみませんが、適宜AWSサポートへのケース起票のほどよろしくお願いいたします。

本トピックはアーカイブさせていただきます。