簡體   English   中英

Tableau 8.2 計算字段與 If thens

[英]Tableau 8.2 calculated field with If thens

我正在 Tableau 8.2 中創建一些計算字段。

“test2”字段的數據是從 Access 導入的。 它們可以是文本中的數字或“空”。

我也有字段“test1”和“minimum”和“maximum”。 “test1”、“minimum”和“maximum”只是數字。

我想用 if 語句做一個計算字段。

計算字段的名稱是“answer”。

我想做以下事情:

1) 如果“test2”不是“Null”且“test2”<“minimum”,則計算“minimum”-“test2”。

(我使用語法 IIF 和 != 表示不相等,但它不喜歡它,因為“Null”是一個字符串值)

2)否則如果“test2”不是“Null”並且“test1”<“minimum”然后計算“minimum”-“test1”

我該怎么做呢? 請指教。

IF (NOT ISNULL([test2])) AND [test2] < [minimum]
THEN [minimum] - [test2]
ELSEIF (NOT ISNULL([test2])) AND [test1] < [minimum]
THEN [minimum] - [test1]
END

如果你知道 ISNULL 函數,那就沒那么難了

在這種情況下,測試 null 是多余的(不必要的)。

引用具有空值的字段的 if 條件的計算結果為 false。 這與 Java 編程不同。 在大多數情況下,您不必在引用字段之前測試空值。 有用的是,像 min()、max()、sum()、count() 等聚合函數完全忽略空值。

不必要的空測試使公式難以閱讀,並且很容易隱藏拼寫錯誤。 假設您在上面的第二個測試中指的是 test1 而不是 test2,那么您的計算字段只需要說明:

if test2 < minimum then
  minimum - test2
elseif test1 < minimum then
  minimum - test1
end

Inox 是正確的,當您確實需要顯式測試空值時,要使用的函數是 isnull(),或者在某些情況下是 ifnull() 或 zn()。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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