2016-12-01 22 views
0

私は出席者ごとに個別の記録を含む経費ファイルを持っていますが、総経費額を繰り返します。Spotfire複数のレベルを合計

Employee Report ID Transaction Date Vendor   City/Location Expense Type Approved Amount Attendee Name 
John Smith A   4/20/2016   UNITED AIRLINES NYC   Airfare   317.1   Jane smith 
John Smith A   4/20/2016   UNITED AIRLINES NYC   Airfare   317.1   jack smith 
John Smith A   4/20/2016   UNITED AIRLINES NYC   Airfare   317.1   tom white 
John Smith A   4/20/2016   Bar and Grill NYC   Dinner   94.74   kelly thompson 
John Smith A   4/20/2016   Bar and Grill NYC   Dinner   94.74   joan ellen 
John Smith A   4/20/2016   Bar and Grill NYC   Dinner   94.74   albert coals 

私は、経費額を複製することなく、都市別経費の合計を合計する必要があります。街にクロステーブルをしながら私は、次のカスタム式を試してみました:

Sum(max([Approved Amount]) over (Intersect([Transaction Date],[Vendor]))) 

しかし、これは私が

City Amount 
NYC 411.84 

任意の提案のような結果を探しています

City Amount 
NYC 1235.52 

をもたらしました感謝されます。私はトラブルのテストのビットを持ってい認めるものの

+0

費用明細を一意に識別する方法がありますか? – niko

+0

レコードに一意の識別子がありません。 – cookiemnstr247

+0

完全に重複する行が存在するでしょうか?同一の出席者、都市とベンダー、従業員などの同じ出席者...? – scsimon

答えて

1

cookiemnstr247 @ - 以下のソリューションをテストし、それが動作するかどうか私に教えてください。

ステップ1:挿入算出列 'ランク'

Rank([Approved Amount],"desc",[Employee],[Transaction Date],[City/Location],[Vendor],"ties.method=first") 

ステップ2:挿入別の計算列 'sumvalue'

If([Rank]=1,[Approved Amount],0) 

ステップ3:クロステーブルを作成し以下のスクリーンショットに示すように

enter image description here

このソリューションをさまざまなシナリオでテストしたところ、安定しているようです。

注:この場合、従業員、取引日、都市/所在地およびベンダーはグループ分けにのみ使用されます。グループ化に列を追加したい場合は、ランク列に追加してください。

+0

重複行ですか? – scsimon

+0

データを見直して重複を事前に削除する必要がありますが、それ以外の場合は必要な結果が得られたようです。ありがとう。 – cookiemnstr247

+0

あまりにも遅くなるまで残念ながらあなたはわかりません@ cookiemnstr247 – scsimon

0

私は、これが機能すると思います:

Sum(Max([Approved Amount]) OVER (Intersect(All([Axis.Rows]),[Vendor])) * (If(RankReal([Approved Amount],[Vendor],"ties.method=first")>1,0,1)))