在 Spotfire 中交叉 table
Cross table in Spotfire
*根据 ksp 的回答更新(非常感谢,这几乎是我要找的。)
谁能帮我解决以下问题。
给定数据table:
Key Rec Period DOW Category Value
Key1 Rec1 Period1 dow1 KPIa x1
Key1 Rec2 Period1 dow1 KPIb z1
Key1 Rec3 Period2 dow1 KPIa y1
Key2 Rec4 Period1 dow1 KPIa x1
Key2 Rec5 Period1 dow1 KPIb z1
Key2 Rec6 Period2 dow1 KPIa y1
Key1 Rec7 Period1 dow2 KPIa x2
Key1 Rec8 Period1 dow2 KPIb z2
Key1 Rec9 Period2 dow2 KPIa y2
Key2 Rec10 Period1 dow2 KPIa x2
Key2 Rec11 Period1 dow2 KPIb z2
Key2 Rec12 Period2 dow2 KPIa y2
Key1 Rec13 Period1 dow1 Delta d1
Key1 Rec14 Period1 dow2 Delta d2
Key2 Rec15 Period1 dow1 Delta d3
Key2 Rec16 Period1 dow2 Delta d4
在 Spotfire 中,可以创建以下交叉 table:
Avg(KPIa) Avg(KPIb) Delta
Period1 Period2 Period1 Period1
dow1 dow2 dow1 dow2 dow1 dow2 dow1 dow2
Key1 x1 x2 y1 y2 z1 z2 d1 d2
Key2 x1 y1 y2 z1 z2 d3 d4
现在我想在这个十字架上改变一些东西 table 但我无法弄清楚如何:
Delta 是一个只对 Period1 有效的列。是否可以将额外的 Period 和 DOW 水平仅应用于交叉的某些列 table?
所以我想要的是:
Avg(KPIa) Avg(KPIb) Delta
Period1 Period2 Period1
dow1 dow2 dow1 dow2 dow1 dow2
Key1 x1 x2 y1 y2 z1 z2 (d1 + d2) / 2
Key2 x1 y1 y2 z1 z2 (d3 + d4) / 2
而当 dow2 被过滤掉时:
Avg(KPIa) Avg(KPIb) Delta
Period1 Period2 Period1
dow1 dow1 dow1
Key1 x1 y1 z1 d1
Key2 x1 y1 z1 d3
提前致谢。
@ user6076025 - 请检查此解决方案,如果有帮助请告诉我。
出于计算目的,我将 X 视为 1,将 Y 视为 2,将 Z 视为 3。
我已经对你的第一个屏幕截图中的数据进行了逆透视,然后从逆透视的数据中创建了一个十字table。
附上截图供大家参考。
@ user6076025 - 我已将值分配给 table 中的 'dummy value' 列用于计算目的,并添加了一个计算列 'new delta',它将平均 d1、d2 和 d3、d4。
公式如下:
现在,我根据这些数据创建了一个交叉 table。下面是table和交叉table.
的截图
如果这有帮助,请告诉我。
关于道指问题,我会在带有固定值选项的文本区域中放置一个下拉列表
显示名称:'Include Dow2' 值:0
显示名称:'Exclude Dow2' 值:1
这将有一个用于更改的脚本,该脚本将执行以下操作:
if Document.Properties["udDowChoice"] == '0':
Document.Properties["PivotString"] = '<[Category] NEST [Period] NEST [DOW]>'
else:
Document.Properties["PivotString"] = '<[Category] NEST [Period]>'
然后在水平轴的自定义表达式中,使其等于 ${PivotString}
并使用表达式限制数据
If(${udDow} = 0, 1=1, [DOW] <> 'dow2')
为了避免用户的潜在混淆,我还建议从过滤方案中隐藏 DOW 过滤器。
*根据 ksp 的回答更新(非常感谢,这几乎是我要找的。)
谁能帮我解决以下问题。
给定数据table:
Key Rec Period DOW Category Value
Key1 Rec1 Period1 dow1 KPIa x1
Key1 Rec2 Period1 dow1 KPIb z1
Key1 Rec3 Period2 dow1 KPIa y1
Key2 Rec4 Period1 dow1 KPIa x1
Key2 Rec5 Period1 dow1 KPIb z1
Key2 Rec6 Period2 dow1 KPIa y1
Key1 Rec7 Period1 dow2 KPIa x2
Key1 Rec8 Period1 dow2 KPIb z2
Key1 Rec9 Period2 dow2 KPIa y2
Key2 Rec10 Period1 dow2 KPIa x2
Key2 Rec11 Period1 dow2 KPIb z2
Key2 Rec12 Period2 dow2 KPIa y2
Key1 Rec13 Period1 dow1 Delta d1
Key1 Rec14 Period1 dow2 Delta d2
Key2 Rec15 Period1 dow1 Delta d3
Key2 Rec16 Period1 dow2 Delta d4
在 Spotfire 中,可以创建以下交叉 table:
Avg(KPIa) Avg(KPIb) Delta
Period1 Period2 Period1 Period1
dow1 dow2 dow1 dow2 dow1 dow2 dow1 dow2
Key1 x1 x2 y1 y2 z1 z2 d1 d2
Key2 x1 y1 y2 z1 z2 d3 d4
现在我想在这个十字架上改变一些东西 table 但我无法弄清楚如何:
Delta 是一个只对 Period1 有效的列。是否可以将额外的 Period 和 DOW 水平仅应用于交叉的某些列 table?
所以我想要的是:
Avg(KPIa) Avg(KPIb) Delta
Period1 Period2 Period1
dow1 dow2 dow1 dow2 dow1 dow2
Key1 x1 x2 y1 y2 z1 z2 (d1 + d2) / 2
Key2 x1 y1 y2 z1 z2 (d3 + d4) / 2
而当 dow2 被过滤掉时:
Avg(KPIa) Avg(KPIb) Delta
Period1 Period2 Period1
dow1 dow1 dow1
Key1 x1 y1 z1 d1
Key2 x1 y1 z1 d3
提前致谢。
@ user6076025 - 请检查此解决方案,如果有帮助请告诉我。
出于计算目的,我将 X 视为 1,将 Y 视为 2,将 Z 视为 3。
我已经对你的第一个屏幕截图中的数据进行了逆透视,然后从逆透视的数据中创建了一个十字table。
附上截图供大家参考。
@ user6076025 - 我已将值分配给 table 中的 'dummy value' 列用于计算目的,并添加了一个计算列 'new delta',它将平均 d1、d2 和 d3、d4。
公式如下:
现在,我根据这些数据创建了一个交叉 table。下面是table和交叉table.
的截图关于道指问题,我会在带有固定值选项的文本区域中放置一个下拉列表
显示名称:'Include Dow2' 值:0 显示名称:'Exclude Dow2' 值:1
这将有一个用于更改的脚本,该脚本将执行以下操作:
if Document.Properties["udDowChoice"] == '0':
Document.Properties["PivotString"] = '<[Category] NEST [Period] NEST [DOW]>'
else:
Document.Properties["PivotString"] = '<[Category] NEST [Period]>'
然后在水平轴的自定义表达式中,使其等于 ${PivotString}
并使用表达式限制数据
If(${udDow} = 0, 1=1, [DOW] <> 'dow2')
为了避免用户的潜在混淆,我还建议从过滤方案中隐藏 DOW 过滤器。