我想计算按类型和ID分类的两行之间的值差异,并按日期列排序。请参见示例数据表。请注意,“计算”列显示当前结果,而“预期”列显示我想要实现的结果。
ID Type Date ValueA ValueB ValueC Calculated Expected
1 A 8/15/2017 38.11
1 A 8/15/2017 78.10 39.99
1 A 8/22/2017 110.24 32.14
1 B 8/22/2017 20
1 B 9/16/2017 10
1 A 9/16/2017 101.13 -9.11
2 C 8/17/2012 90
2 A 8/18/2012 863.25
2 B 8/18/2012 15
2 A 8/19/2012 952.35 89.1 89.1
2 B 8/19/2012 20
我尝试了以下自定义表达式,但它似乎仅针对给定ID的连续日期的情况计算差值。
Case
when [Type]="A" then [Value] - Max([Value]) over (Intersect([ID],Previous([Date])))
else NULL
该表达式尝试过滤为OVER语句的“A”类型,以便前一个日期仅为分类为“A”类型的值的上一个日期。但是,如果不是连续日期(即前一天),它似乎将前一个日期视为NULL。有关此表达式的结果,请参阅上表中的“计算”。
我还尝试将Type添加到Intersect语句中,例如相交([ID],[类型],上一个([日期]),但我得到了类似的结果。
答案 0 :(得分:0)
确实
user_input_string.format(*user_input_args)
为您提供您想要的计算列
编辑: 我能够使用这个公式(previousperiod而不是之前的版本)几乎匹配您的预期列,但前两行是相同的日期,因此它不是完全匹配。 formula