2011-03-28 62 views
1

請原諒這個絕對新手的問題,但我對畫面非常陌生。 我想要做的是根據哪些過濾器標誌處於活動狀態來創建消息。因此,在僞代碼,我會做這樣的事情:多個if for計算字段在畫面中

message = '' 
if filter1 == 1: 
    message += 'filter 1 is active' 
if filter2 == 1: 
    message += ' filter 2 is active' 
return message 

問題是,我甚至不知道如何if語句做多 - 我不斷收到一個語法錯誤。任何幫助將不勝感激。

+0

什麼是畫面? – 2011-03-28 14:33:41

+2

這是圖表:http://www.tableausoftware.com/tableau-software-1A?kw=tableau&adused=6167802135&gclid=CPe_1dC98acCFYS8KgodXV2caA – Ramy 2011-03-28 14:35:28

回答

0

我最終做的是爲每個if語句創建一個計算字段。然後我創建了另一個計算字段,它連接了我創建的第一組計算字段中的每一個的所有輸出。似乎有點像黑客,所以如果有人知道這樣做的更優雅的方式(使一系列計算字段的計算字段看起來非常糟糕),我很樂意傳遞迴答的要點。

2

下面是我如何完成類似的例子:

IF [ZAVUFA1_FED_COLL_CHOICE_1] = 'xxxxx' THEN 1 
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_2] = 'xxxxx' THEN 2 
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_3] = 'xxxxx' THEN 3 
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_4] = 'xxxxx' THEN 4 
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_5] = 'xxxxxx' THEN 5 
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_6] = 'xxxxx' THEN 6 
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_7] = 'xxxxxx' THEN 7 
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_8] = 'xxxxxx' THEN 8 
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_9] = 'xxxxx' THEN 9 
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_10] = 'xxxxxx' THEN 10 
ELSEIF ISNULL([ZAVUFA1_FED_COLL_CHOICE_1]) THEN 99 
END 

我所疼愛計算器很多,畫面也有他們的網站上有很大的用戶論壇。

+0

看起來像需要添加的新標記,即「Tableau」。 – 2011-03-28 14:37:38

+0

不是ELSEIF.just如果。我必須做的是爲每個if語句創建多個計算字段,然後再將另一個計算字段連接起來。 – Ramy 2011-03-28 14:53:50

+0

@Ramy。我想我不明白在表達式中引用一個字段或另一個計算表達式的區別是什麼。此外,如果你看我的代碼,我就像你一樣引用不同的對象(計算)。在你的例子中。簡單地說,我想我不明白你要做什麼,因爲我的例子與你的玩具示例 – Btibert3 2011-03-28 19:30:28

1

您可以創建一個名爲消息計算的字段使用此代碼:

IF filter1 = 1 THEN 'filter 1 is active' END 
+ IF filter2 = 1 THEN ' filter 2 is active' END