2016-05-18 30 views
0

OVERを使用してNum/Denタイプの割合をプロットしようとしています。しかし、私の思考は、カスタム・シンタックスのスペルファイヤーに変換するようには見えません。Spotfireカスタム式:(Num/Den)パーセントを計算する

サンプル入力:

RecordID CustomerID DOS  Age Gender Marker 
9621854 854693  09/22/15 37 M  D 
9732721 676557  09/18/15 65 M  D 
9732700 676557  11/18/15 65 M  N 
9777003 5514882  11/25/15 53 M  D 
9853242 1753256  09/30/15 62 F  D 
9826842 1260021  09/30/15 61 M  D 
9897642 3375185  09/10/15 74 M  N 
9949185 9076035  10/02/15 52 M  D 
10088610 3512390  09/16/15 33 M  D 
10120650 41598  10/11/15 67 F  N 
9949185 9076035  10/02/15 52 M  D 
10088610 3512390  09/16/15 33 M  D 
10120650 41598  09/11/15 67 F  N 

アウト予想:

Row Labels D Cumulative_D N Cumulative_N Percentage 
Sep   6 6    2 2    33.33% 
Oct   2 8    1 3    37.50% 
Nov   1 9    1 4    44.44% 

私のカウントが働いています。 同じCumulative_N & Cumulative_Dカウントを使用し、[Axis.X]に占めるプロットの割合を折れ線グラフとして使用したいと思います。

は、ここで私が使用しています何:私はSUM([Value])が進むべき道ではありません理解

UniqueCount(If([Marker]="N",[CustomerID]))/UniqueCount(If([Marker]="D",[CustomerID])) THEN SUM([Value]) OVER (AllPrevious([Axis.X])) as [CumulativePercent] 

。しかし、私は代わりに何を使うべきかわかりません。

も同様に、以下のいずれかを試みたが、しませんでした:

UniqueCount(If([Marker]="N",[CustomerID])) OVER (AllPrevious([Axis.X]))/UniqueCount(If([Marker]="D",[CustomerID])) OVER (AllPrevious([Axis.X])) as [CumulativePercent] 

あなたが見ていることはできますか?

+0

あなたはいくつかのサンプルデータをポストし、結果を期待することはできますか? –

+0

@Monte_fisto:元の質問を編集して、サンプル入力と予想される出力を含めます。 – WeShall

+0

ありがとうございます - データをテキスト形式で追加できますか? –

答えて

0

私はそれを動作させる方法を見つけましたが、全体的な解決策には合わないかもしれません。私は言及する必要がありますCount()UniqueCount()を使用して結果があなたの希望の出力を反映するように。

  1. Count([CustomerID])
  2. セットコラムのタイトルにするために計算列Month([DOS]) as [TheMonth]
  3. 行セットIdentifers = [TheMonth]
  4. 設定値の列と集計方法を挿入し、あなたの現在のデータテーブルに
    • を変換を追加します。 [Marker]
    • カラム名パターンをあなたに新しいデータテーブルを与える%M(%V) for %C

。その後、累積機能を実行できます。私はあなたの予想される結果を複製するためにクロステーブルでそれらをしました。新しいクロステーブルを挿入し、値を次の値に設定します。

Sum([D]), Sum([N]), Sum([D]) OVER (AllPrevious([Axis.Rows])) as [Cumulative_D], 
Sum([N]) OVER (AllPrevious([Axis.Rows])) as [Cumulative_N], 
Sum([N]) OVER (AllPrevious([Axis.Rows]))/Sum([D]) OVER (AllPrevious([Axis.Rows])) as [Percentage] 

これでいいはずです。

0

Spotfireが修正をリリースしたのか、全員の入力に基づいて構文が正しいのか分かりません。しかし、ここでは私のために働く解決策があります。D & N、

列について
COUNT([CustomerID]) 

enter image description here

は& Cumulative_N、

カラム割合を
Count([CustomerID]) OVER (AllPrevious([Axis.X])) where [Axis.X] is DOS(Month), Marker 

enter image description here

、01 Cumulative_D列の

Count(If([Marker]="N",[CustomerID])) OVER (AllPrevious([Axis.X]))/Count(If([Marker]="D",[CustomerID])) OVER (AllPrevious([Axis.X])) 
where [Axis.X] is DOS(Month) 

enter image description here

関連する問題