Tableau 8.2使用If计算字段

时间:2014-10-22 17:56:47

标签: field tableau

我正致力于在Tableau 8.2中创建一些计算字段。

“test2”字段的数据是从Access导入的。它们可以是数字或文本中的“空”。

我还有字段“test1”,“minimum”和“maximum”。 “test1”,“minimum”和“maximum”仅为数字。

我想用if语句做一个计算字段。

计算字段的名称是“answer”。

我想做以下事情:

1)如果“test2”不是“Null”并且“test2”< “最小”然后计算“最小” - “test2”。

(我使用的语法IIF和!=不相等,但它不喜欢它,因为“Null”是一个字符串值)

2)否则如果“test2”不是“Null”并且“test1”< “最小”然后计算“最小” - “test1”

我该怎么做呢?请指教。

2 个答案:

答案 0 :(得分:0)

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

如果你知道ISNULL函数那就不那么难了

答案 1 :(得分:0)

在这种情况下,测试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()。