DAX ALLEXCEPTで複数のディメンションテーブルのカテゴリごとに合計する
カテゴリごとの合計を計算したい。 カテゴリはディメンジョンテーブルにあります。
以下はサンプルファイルです。 DAX ALLEXCEPT total by category.pbix
私は次のモデルを持っています:
これらは私が期待する結果である。 色による合計:
私は以下の方法で期待通りの結果を得られると思いました:
ALLEXCEPT_color =CALCULATE ( , ALLEXCEPT ( FactTable, -- surprisingly 'dim1' table in that place gives wrong results dim1 ))
あるいは Alberto Ferrari https://www.sqlbi.com/articles/using-allexcept-versus-all-and-values/ が提案する方法:
ALL_VALUES_color = CALCULATE ( , ALL (FactTable), -- again, 'dim1' produces wrong results, has to be FactTable VALUES ( dim1 ) )
これらの手段は両方とも機能して正しい結果を返してくれました。 しかし、表示された結果は、すべての次元の直積を作るために倍加されます。
Expected_Results_Color =IF ( ISBLANK ( ), BLANK (), )
おそらく、ALLEXCEPT
関数について何かが欠けているため、一発で欲しいものが手に入らないのでしょう。 複数のテーブル、特にスター スキーマの中心から離れた次元で ALLEXCEPT 関数を使用するロジックは何でしょうか。
ByCategories =CALCULATE ( SUM ( FactTable ), ALLEXCEPT ( dim1, dim1 ), ALLEXCEPT ( dim2, dim2 ), ALLEXCEPT ( dim3, dim3 ))
しかし、私が以前テストしたように、これは動作しません。 寸法で集計されず、そのまま出力されます。
そこで、これが正しい方向であることがわかりました。
ByCategories =CALCULATE ( SUM ( FactTable ), ALLEXCEPT ( FactTable, -- here be difference dim1, dim2, dim3 ))
別の方法もあるかもしれないと推測します。
Measure = var MyTableVariable = ADDCOLUMNS ( VALUES ( dim1 ), "GroupedSales", ) RETURN ...
もし、GroupedSales の単一のスカラー値を MyTableVariable から取得して、テーブル ビジュアルでその色と一致できればいいんですけどね。
Category の合計を計算する際に、さらなる洞察を得られると非常にありがたいです。