[英]Spotfire Calculated Column
我是Spotfire的新手,希望您能為您提供幫助。 我的Excel工作表超過280,000行,因此當我運行公式時,Excel工作表變得非常慢。 我希望Spotfire可以提供幫助。 我要實現的目標是:在2015年向醫生支付一定的金額,然后在2016年收回完全相同的金額。我希望在2015年識別出這些已支付的金額,並在2016 年僅從280,000行中收回這些交易。 下圖顯示了Excel中正負的示例。
在D,L,N和JI列中,使用SUMIFS公式在O列中標識了抵消為零的正交易和負交易。 Spotfire是否可以在不降低計算機速度的情況下在計算列中實現相同目的?
以下是我到目前為止在Spotfire中所沒有的功能,但是我很新,而Synax對我來說是新的。 是否可以在日期列之后輸入一個計算列,以標識偏移為零的2015年和2016年的正數和負數? 任何幫助將不勝感激。 謝謝
這是我用來實現自己在excel中需要的公式,它需要很長時間才能完成,但它確實有效。 我們可以在Spotfire中采用這個公式嗎?
您可以通過與over子句聚合來實現此目的。 如果您可以粘貼數據集的文本版本,那么我們可以確保100%正確,但是這就是您想要的。
獲取每個客戶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]保持不變,而[2015年付款]中有1 [報銷2016]中的1會將[金額]列偏移為零,然后在新列中顯示“ 1”,否則顯示“ 0”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.