您可以通过使用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”
您可以将一些数据从excel复制/粘贴到原始文章中文字更好地帮助。 – scsimon