簡體   English   中英

Spotfire計算列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM