解決方法の1つは、カレンダーテーブルを作成して、グループ化期間の日数をカウントする方法です。これは、例えば4-4-5のような非標準のカレンダーも使用できることを意味します。
カレンダーテーブルを作成すると、DAXでFIRSTDATE
とLASTDATE
の機能を利用できます。
カレンダーテーブルに過去の日付列を追加することをお勧めします。これは、次の数式でDAXを使用して作成できます。計算列で使用されるDAXの今日の機能は、モデルが更新されたときのみ評価されます。例えばのでPast_Dates
Past_dates = IF(、TODAY()> [日付]、TRUE()BLANK())
と呼ばれる私の例では
私は日付テーブルで計算列を作成した場合私は今日のイラストレーションをイラストレーションのために使っています。
Start_date:=FIRSTDATE(Dates[Date])
End_Date:=LASTDATE(Dates[Date])
Today:=TODAY()
EndPhased:=CALCULATE(LASTDATE(Dates[Date]), Dates[Past_dates] = TRUE())
空のピボットテーブルに追加すると、次のように評価されます。 複数年のデータがある場合は、ピボットのどこかに年を設定することをお勧めします。
![enter image description here](https://i.stack.imgur.com/xWvrn.png)
過去の旗を持っていることのアイデアは、彼らが将来的にあることに起因する任意のデータではないであろう日を数えることから維持することです。したがって、たとえば9月には、11日間の売り上げを使用するだけで、フル30は使用しません。
次の例に示すように、開始日と終了日の検索は四半期単位でも機能します。だから、
![enter image description here](https://i.stack.imgur.com/Uxlyj.png)
今、我々は期間の開始日と終了日を取得する方法を持っていることを、次のステップは、私たちの計算されるメジャーにそれを追加しています。
以下の例では、すべての一意のカテゴリ名を繰り返しています。カテゴリ内では、販売単位を合計し、EndPhasedとStart_Date + 1の間の日数で除算します。次に、その期間のデータを持つカテゴリの数で結果を平均化します。
私は最善の方法は、UNIONの機能を使用して、不足しているゼロを追加することだと思います
Average:=AVERAGEX (
VALUES (Data[Category]),
CALCULATE (DIVIDE (SUM (Data[Units]), [EndPhased] - [Start_date] + 1))
)