2017-08-08 12 views
0

Power BIデスクトップに累積合計を作成しようとしているテーブルがあります。これは、このテーブルを作成するSQLです:Power BIで複数の列に累積合計を作成するにはどうすればよいですか?

create table #sample 
(
DOS_Month    varchar(6) 
,CRD_Month    varchar(6) 
,Credit_Received_Date date 
,DaysElapsed   varchar(20) 
,Last_Mo_Collections decimal(13,0) 
) 
insert #sample values('201707','201708','8/2/2017','01',11470) 
insert #sample values('201707','201708','8/3/2017','01',2821) 
insert #sample values('201707','201708','8/4/2017','01',1361) 
insert #sample values('201707','201708','8/7/2017','01',9040) 
insert #sample values('201707','201708','8/3/2017','02',2397) 
insert #sample values('201707','201708','8/4/2017','02',5101) 
insert #sample values('201707','201708','8/7/2017','02',2256) 
insert #sample values('201707','',NULL,'Complete Month',1041764) 

累積合計列を追加した後、この表には、次のようになります。

DOS_Month CRD_Month Credit_Received_Date DaysElapsed Last_Mo_Collections Cumulative 
$201,707 201708 8/2/2017 1 $11,470 $11,470 
$201,707 201708 8/3/2017 1 $2,821 $14,291 
$201,707 201708 8/4/2017 1 $1,361 $15,652 
$201,707 201708 8/7/2017 1 $9,040 $24,692 
$201,707 201708 8/3/2017 2 $2,397 $27,089 
$201,707 201708 8/4/2017 2 $5,101 $32,190 
$201,707 201708 8/7/2017 2 $2,256 $34,446 
$201,707   Complete Month $1,041,764 $1,076,210 

にはどうすればDAXやクイック対策を使用して、これを行うことができますか?また、DOS_MonthとCRD_Monthは時刻データ型ではないため、これらを合計するために時間関数を使用することはできません。

答えて

1

この数式は、あなたの希望する累積合計列を与えるはずです。

Cumulative = CALCULATE(
    SUM(Table1[Last_Mo_Collections]), 
    FILTER(
     Table1, 
     Table1[DOS_Month] = EARLIER(Table1[DOS_Month]) && 
     (
      (
       Table1[DaysElapsed] = EARLIER(Table1[DaysElapsed]) && 
       Table1[Credit_Received_Date] <= EARLIER(Table1[Credit_Received_Date]) 
      ) || (
       Table1[DaysElapsed] < EARLIER(Table1[DaysElapsed]) 
      ) 
     ) 
    ) 
) 

Results

EARLIERファンクションキー(と私の意見では恐ろしく命名)です。ドキュメントから、関数...

上記の列の外部評価パスで指定された列の現在の値を返します。

関連する問題