2017-08-02 554 views
2

我从Excel文件中的Tableau中有一个数据库。数据库中的每一行都是两年内为不同主题乐园提供的一张票(分配给客户的ID)。使用固定值的Tableau计算字段

的结构是这样的:

enter image description here

每个ID都可以买到不同的公园(或同一个花园几次)车票,也可在不同年。

我无法做的是标记那些在两个不同年份在同一个公园的客户(例如,客户004已经去过2016年和2017年的公园a)。

如何在Tableau中创建此计算字段? (我设法解决这个在Excel中与一个sumproduct fucntion,但数据库有超过500k行,并在一段时间后崩溃/加我想要使用计算的字段,以防万一我更新Excel文件与新公园还是新的一年)

理想情况下,我认为的输出结构应该像下面这样(但是我对不同的观点持开放态度,只要我得到结果):两个不同年份的同一个公园。

enter image description here

回答

2

创建一个名为customer_park_years计算字段=

{ fixed [Customerid], [Park] : countd([year]) } 

您可以使用过滤器架子上,只包括customer_park_years数据> = 2

然后,你将只能够想象与访问多年访问特定公园的那些客户有关的数据。如果你还想看看他们在其他公园的行为,你必须调整你的方法,而不是简单地过滤掉其他数据。变化取决于你的问题的细节。

但要回答您的具体问题,这应该是一个简单的方法。

请注意,对于非常大的数据集,countd()可能会很慢,但它可以回答问题而不会轻松重构数据,所以它往往是一个很好的折衷。

0

试试这个!

IFNULL(str({fixed [Customerid],[Park]:IF sum(1)>1 then 1 ELSE 0 END}),'0') 
+0

嗨,谢谢你的回复!该公式似乎工作,但没有告诉我在哪个公园客户已经两次,有什么想法? – JoeUK

+0

编辑:公式不总是工作。在发现一个案例中,一个客户被标记为1,但它是0 – JoeUK

+0

您可以发布测试案例吗? –