2017-08-02 555 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

您可以發佈測試案例嗎? –