多个级别的 Spotfire Sum
Spotfire Sum over multiple levels
我有一个费用文件,其中包含每个与会者的单独记录,但重复了总费用金额。
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
我需要按城市汇总费用总额而不重复费用金额。我在城市上做交叉 table 时尝试了以下自定义表达式:
Sum(max([Approved Amount]) over (Intersect([Transaction Date],[Vendor])))
但这导致了
City Amount
NYC 1235.52
我正在寻找类似
的结果
City Amount
NYC 411.84
如有任何建议,我们将不胜感激。
我认为这会奏效,但我承认我在测试时遇到了一些问题:
Sum(Max([Approved Amount]) OVER (Intersect(All([Axis.Rows]),[Vendor])) * (If(RankReal([Approved Amount],[Vendor],"ties.method=first")>1,0,1)))
@cookieemnstr247 - 请测试以下解决方案,如果有效请告诉我。
步骤 1: 插入计算列 'Rank'
Rank([Approved Amount],"desc",[Employee],[Transaction Date],[City/Location],[Vendor],"ties.method=first")
步骤 2: 插入了另一个计算列 'sumvalue'
If([Rank]=1,[Approved Amount],0)
第 3 步: 创建一个十字 table,如下面的屏幕截图所示
我用不同的场景测试了这个解决方案,它似乎是 stable。
注:Employee、Transaction date、city/Location和Vendor仅用于本例中的分组。如果您想将更多列添加到分组中,请将这些列添加到排名列
我有一个费用文件,其中包含每个与会者的单独记录,但重复了总费用金额。
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
我需要按城市汇总费用总额而不重复费用金额。我在城市上做交叉 table 时尝试了以下自定义表达式:
Sum(max([Approved Amount]) over (Intersect([Transaction Date],[Vendor])))
但这导致了
City Amount
NYC 1235.52
我正在寻找类似
的结果City Amount
NYC 411.84
如有任何建议,我们将不胜感激。
我认为这会奏效,但我承认我在测试时遇到了一些问题:
Sum(Max([Approved Amount]) OVER (Intersect(All([Axis.Rows]),[Vendor])) * (If(RankReal([Approved Amount],[Vendor],"ties.method=first")>1,0,1)))
@cookieemnstr247 - 请测试以下解决方案,如果有效请告诉我。
步骤 1: 插入计算列 'Rank'
Rank([Approved Amount],"desc",[Employee],[Transaction Date],[City/Location],[Vendor],"ties.method=first")
步骤 2: 插入了另一个计算列 'sumvalue'
If([Rank]=1,[Approved Amount],0)
第 3 步: 创建一个十字 table,如下面的屏幕截图所示
我用不同的场景测试了这个解决方案,它似乎是 stable。
注:Employee、Transaction date、city/Location和Vendor仅用于本例中的分组。如果您想将更多列添加到分组中,请将这些列添加到排名列