2017-01-24 13 views
2

私の表の立方体には2つの尺度があります。 TOTALMTDが遅いDAX測定

は、最初のものは

'Number of Days' := CALCULATE(COUNTROWS(SUMMARIZE('A'[Date]))) 

秒1人の意志はその発現

'Number of Days (MTD)' := CALCULATE(TOTALMTD([Number of Days],'A'[Date])) 

私はキューブを参照し、対策を引き出す第二措置として最初のものが含まれて呼ばれます。 非常に遅いです。

これらの測定値をどのように最適化してより速く動かすことができますか?

Volume (MTD):= TOTALMTD([Volume],'A'[Date])

Volume:= SUMX(A, DIVIDE([Volume],2))

Sample Data

更新余分な測定

+0

「A」はカレンダー/日付表ですか?注** TOTALMTD **は日付/カレンダーとしてマークされたテーブルでのみ正常に動作する時間インテリジェンス機能です。私はあなたが明示的なフィルタを使用することができると思いますが、あなたを助けるためにデータサンプルを提供する必要があります。 –

+0

こんにちはアレハンドロ、 'A'は、 '日付'という名前の日付列を含むファクト表です。 「サンプルデータ」をアップロードしました。最初の列には元の 'A' [日付]データが表示されます。 2番目の列は上記の最初の測定値です。 3番目の列は上記の2番目の測定値になります。 –

答えて

1

のベストプラクティスは、カレンダー/日付テーブルを作成し、TOTALMTDタイムインテリジェンス機能を使用する必要があります。ただし、この方法は、モデルに日付表が含まれていない場合に使用できます。

まず措置、日数:

Num of Days := DISTINCTCOUNT(A[Date]) 

累積的対策:

Num of days (MTD) := 
CALCULATE (
    [Num of Days], 
    FILTER (
     ALL (A), 
     [Date] <= MAX (A[Date]) 
      && MONTH ([Date]) = MONTH (MAX ([Date])) 
      && YEAR ([Date]) = YEAR (MAX ([Date])) 
    ) 
) 

がUPDATE:を追加しましたスクリーンショット。

enter image description here

UPDATE 2:

Num of days (MTD) := 
CALCULATE ([Num of Days], FILTER (ALL (A), [Date] <= MAX (A[Date]))) 

UPDATE 3:あなたがちょうど秒対策のための表現の下に使用している場合には、累計を計算する必要があるようだ Usuing SUMXおよびDISTINCTを使用して異なる日付を数えます。

に従って、最初の小節を交換:

Num of Days = SUMX(DISTINCT(A[Date]), 1) 

この溶液をSUMMARIZE +使用COUNTROWSよりパフォーマンスの可能性が、 それは行の数と マシンに応じて非常に遅くなる可能性がそこでは実行されています。

これが役立つかどうか教えてください。

+0

私はこのアレハンドロを試してみます。 これが役立つかどうかにかかわらず、あなたの努力に感謝します。 あなたに後で戻ってきます。 –

+0

こんにちは@alejandro、 あなたのメジャーで返される結果は、私のメジャーに比べて正しくないようです。 基本的に、あなたの式は最初から最後まで累積されます。 しかし、私が望むのは、毎月累積されているだけです。 1月に10/1、11/1、12/1しかないとしましょう - 私は数日(MTD)の測定で1、2、3を得て、2月には3/2と4/2 - 1から再計算され、結果は1,2になります。 –

+0

@KingsleyTan、作成したメジャーを使用してPower BIのマトリックスで答えを更新しました(これもPowerPivotでも動作するはずです)。期待通りの結果ではありませんか? –