2017-07-09 24 views
0

Power BIレポートで一連のマトリックステーブルを作成したいと考えています。マトリックステーブル - 日付日付のカラム、ロケーションロー、カウントダウン

我々が持っているデータがある:

EventID|VehicleID|LocationID|StartDate|EndDate 
1  |1  |GBR  |2010-1-1 |2010-1-5 
2  |9  |RUS  |2010-1-3 |2010-1-7 
3  |6  |GBR  |2010-1-3 |2010-1-5 
4  |1  |USA  |2010-1-5 |2010-1-7 

出力

LocationID 2010-1-1|2010-1-2|2010-1-3|2010-1-4|2010-1-5|2010-1-6 
GBR    1 | 1 |  2 |  2 | 0 | 0 
USA    0 | 0 |  0 |  0 | 1 | 1 
RUS    0 | 0 |  1 |  1 | 1 | 1 

各車両は、各車両のための時間のない重複が存在しない時間内に一つのイベントがあります。私たちは、各場所での各車両の台数を日付ごとに取得しようとしています。 1月1日にLocationIDが4台の車両が4台ある場合は、4台のマトリックスセルに4台の車両を表示します。

私はSQL Server(ダイレクトクエリを使用しています)に日付表を作成しましたが、1日の各場所での車両数のカウント方法を実際に苦労しています。私は何らかの形で、各イベントの日付範囲をイベントの日付のリストに変換しなければならないと仮定し、それらのそれぞれについて1日のアイテム数を持っています。次に、イベントテーブルのdateテーブルとlocationIDのDateという列を持つMatrixを作成する必要がありますが、locationIDSのカウントを取得する方法はわかりません。何か案は?

+0

私は多くの行日付範囲で一日一にイベントを分割し、SQL Serverのビューを作成することによってこれを行い、その後、PowerBIにすることをインポートすることができます。しかし、私たちはSQL Serverでビューを作成しないようにしようとしています(管理する数百人もあります)。私は純粋なPowerBIソリューションを好むだろう - 同様に私はそれを行う方法を理解することができます。 – GraemeMiller

+0

最小のサンプルデータセットと期待される結果を提供できますか? –

+0

@FoxanNg申し訳ありません - サンプルデータを追加 – GraemeMiller

答えて

1

私はStartDateEndDateに基づいDAXを使用して新しいテーブルを作成している:

Date = CALENDAR(MIN(Event[StartDate]), MAX(Event[EndDate])) 

date

をそしてStartDateEndDateと日付を比較することにより、Count測定を構築し、行の数を数えます:

Count = 
COUNTROWS(
    FILTER(
     Event, 
     Event[StartDate] <= MAX('Date'[Date]) && 
     Event[EndDate] > MIN('Date'[Date]) 
    ) 
) + 0 

結果:

result

+0

DirectQueryを使用してSQL Serverでテーブルを作成できるとは思いませんか? – GraemeMiller

+0

また、メジャメントでSQLサーバの日付表を使用すると、間違った番号が表示されるようです。私は SUMX( FILTER( イベント、 イベント[開始日] <= MAX( '日付' [日])&& イベント[終了日]> MIN( '日付' [日]) =カウントを使用する必要があるように見えます) 、(DATEDIFF(Event [StartDate]、Event [EndDate]、DAY)+1)+ 0そうでなければ、私はちょうどピリオドの総日数ではなく、そのタイプのイベントのカウントを取得すると思います。 – GraemeMiller

+0

@GraemeMiller既存の日付表がすでにある場合は、日付表を作成する必要はありません。それはデモ目的のためです。 –