2016-01-06 28 views
0

我试图来计算过滤日期列的MIN日期和MAX日期之间的年数再由第Y列列OVER X的COUNT划分结果Spotfire中则DateDiff使用自定义表达式

的Spotfire文档中说,自定义表达式是操作过滤数据的关键,但我不确定如何将临时变量传递给SpotFilter功能,如DateDiff。

Example: 
DateDiff(Min([Date]),Max([Date]))/[Column.Y] OVER [Column.X] 

+------+----------+------------+ 
| Name | Date | Made Sale? | 
+------+----------+------------+ 
| joe | 1/1/2010 | 10   | 
| joe | 2/1/2011 | 11   | 
| joe | 3/1/2012 |   | 
| joe | 4/1/2013 | 40   | 
| joe | 5/1/2014 |   | 
| pam | 1/1/2010 | 100  | 
| pam | 2/1/2011 | 19   | 
| pam | 3/1/2012 | 23   | 
| pam | 4/1/2013 | 30   | 
| pam | 5/1/2014 |   | 
| mark | 1/1/2010 |   | 
| mark | 2/1/2011 | 1   | 
| mark | 3/1/2012 |   | 
| mark | 4/1/2013 |   | 
| mark | 5/1/2014 | 49   | 
+------+----------+------------+ 
EG. Filter from 2011-2014, what were Joe, Pam, and Mark's frequency of sales per year? 
+0

你能否提供一些示例数据。像6到10行显示你需要达到什么? –

+0

更新,这是否更清晰? – ScrubDubbins

回答

0

你需要用IF()或CASE这样的逻辑语句来包装它。

If(DatePart('year',[Date]) >= Year('2011') and DatePart('year',[Date]) <= Year('2014'),DateDiff(Min([Date]),Max([Date]))/[Column.Y] OVER [Column.X]) 

您可以使用属性控制,并且在任何输入或计算年通过的地方“2011”和“2014”的。它看起来像

Year('${yourPropertyControlName}')