2016-08-04 105 views
0

我是Spotfire新手,希望您能提供帮助。我有超过280,000行的Excel工作表,因此当我运行公式时,我的Excel工作表变得极其缓慢。我希望Spotfire能够提供帮助。 我想达到的是这样的:医生在2015年支付一定的金额,然后在2016年收回完全相同的金额。我期待识别这些在2015年支付并在2016年交易中收回只有从280,000行。下面的图片显示了Excel中正面和负面的示例。 enter image description hereSpotfire计算的列

使用列D,L,N & J我使用了一个SUMIFS公式来标识列O中的正负事务,其偏移量为零。 Spotfire能否在计算列中实现同样的功能,而不会使计算机的速度变慢?

下面是我到目前为止在Spotfire中没有太多,但我很新,Synax对我来说是新的。 enter image description here 计算后的列是否可以在日期列后面出现,并确定2015年和2016年的正数和负数偏移为零?任何帮助将不胜感激。谢谢

第一步enter image description here

没有回来在第3列 enter image description here

这是我用来实现什么,我需要在Excel中的长镜头年龄处理公式,但它的工作原理。我们可以采用这个公式到Spotfire吗? enter image description here

+0

您可以将一些数据从excel复制/粘贴到原始文章中文字更好地帮助。 – scsimon

回答

1

您可以通过使用over子句进行聚合来实现此目的。如果您可以粘贴数据集的文本版本,那么我们可以确保我们完全正确地使用它,但这里是关于您想要的。

获得每个客户2015年的总和。此公式规定付款的年份是2015年,然后按客户ID将所有金额列和组进行总计。

If(DatePart("year",[Date of Payment])=2015,Sum([Amount]) OVER ([CustomerID])) as [2015CustomerTotal] 

获取2016年的总和为每一个客户

If(DatePart("year",[Date of Payment])=2016,Sum([Amount]) OVER ([CustomerID])) as [2016CustomerTotal] 

然后你可以检查他们是否归零。

If([2016CustomerAmount] - [2015CustomerAmount] = 0,True,False) 

所以我得到了以下工作(V为自己感到骄傲)

If(DatePart("year",[Date of Payment])=2015, True,False) 

从上面我需要知道的是,当有在2016年负继续和它匹配的正2015年的金额和[自然]和[客户ID]列ID匹配然后返回我“GOT YOU”或“1”:-)任何帮助将不胜感激。

不知道为什么这不工作

CASE WHEN ([Amount]>0) AND (DatePart("year",[Date of Payment])=2015) Then "GOT YA" 

想通了

CASE WHEN [Amount]>0 AND (DatePart("year",[Date of Payment])=2015) Then "GOT YA" else "No GOT" end 

好了,所以我们取得了一些我觉得:-) 所以下面现在告诉我在哪里在2015年有付款

CASE WHEN [Amount]>0 AND (DatePart("year",[Date of Payment])=2015) Then "1" else "0" end 

下面这里现在告诉我在2016年

CASE WHEN [Amount]<0 AND (DatePart("year",[Date of Payment])=2016) Then "1" else "0" end 

好,那里有带回一个阴性量或钱,所以我增加了一个视觉以更好地描述我的问题。我想定制功能要做的是:2015年支付中有1个,[2016年支付中]有1个,[客户ID]保持不变,1 [2015年支付]和1 [reimburse 2016]中的1将[数量]列偏移为零,然后在新列中显示我“1”else“0” enter image description here

+0

嗨,scsimon。感谢您花时间回复。我会很高兴粘贴一个TXT,但我不知道如何做到这一点:-(也在哪里输入你给我的代码,我没有任何下降的自定义表达式与此Visual类型。再次抱歉作为一个完整的初学者和谢谢 –

+1

不用担心@PhilipConnell要插入一个计算列,在Spotfire的工具栏上点击'Insert> Calculated Column'并确保你正在粘贴它以获取正确的数据集。 – scsimon

+0

嗨,所以我有需要插入计算的列,客户ID是红色的,我附加了一张新的图片作为视觉。再次感谢您的帮助...这是客户和ID之间的空间如何在代码框中输入代码 –