2016-12-21 8 views
1

日あたりの平均売上高を計算する際、私はNumOfDaysため、以下の対策を持っている:NumOfDaysを計算するときの「日」の粒度を定義しますか?

NumOfDays = IF (
    [Sales Amount] > 0; 
    COUNTROWS (Date) 
) 

これが何をしているかには売上高がない場合、これらの日付の日数を取り除くです。

このように、私は次のビジュアルを持っている:あなたが見ることができるように

Visual

は、合計が間違っています。 これは、データベースにはマトリックスに表示されている年数よりも長い年数があるためです。 NumOfDaysを計算する際の「日」の粒度をどのように定義できますか? つまり、売上のあるその日の行をどのように数えることができますか?

ありがとうございます!

答えて

1

が、私は二つのことをお勧めします:

  1. 利用CALCULATE()の代わりに、代わりにCOUNTROWS()のフィルター
  2. 利用DISTINCTCOUNT()で対策を定義する適切なDAXの道であるIFを、あなたを確保するために、ダブルカウントに実行されません(場合には、あなたのデータはこれまで以上に粒状になります)

この計算は働くこと - しかし、あなたはあなたのダット内の実際の日付列を指定する必要があるかもしれませんテーブル。

NumOfDays = CALCULATE(DISTINCTCOUNT(Date[Date]),FILTER(SalesTable,[Sales Amount] > 0)) 

さらに問題がある場合は、正確にあなたのマトリックスに表示されることを期待していることを教えてください。

+0

こんにちは、私はエラーが表示されます: "関数 'CALCULATE'は、テーブルフィルター式として使用される真偽の式で使用されています。 –

+1

基本的な表現であるのでここでは驚いていますが、私は解決策を知っていると思います。 'NumOfDays = CALCULATE(DISTINCTCOUNT(日付[日付])、FILTER(SalesTable、[Sales Amount]> 0))'の中にFILTER()関数を追加するだけです。 "SalesTable"リファレンスをメインテーブルが呼び出されたものに置き換えることを忘れないでください。 – RedVII

+0

はい、それは動作します! –

関連する問題