【问题标题】:Tableau 8.2 calculated field with If thensTableau 8.2 计算字段与 If thens
【发布时间】:2014-12-18 06:53:03
【问题描述】:

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

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

我还有字段“test1”、“最小值”和“最大值”。 “test1”、“minimum”和“maximum”只是数字。

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

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

我想做以下事情:

1) 如果 "test2" 不是 "Null" 并且 "test2"

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

2) else if "test2" 不是 "Null" 并且 "test1"

我该怎么做呢?请指教。

【问题讨论】:

    标签: field tableau-api


    【解决方案1】:
    IF (NOT ISNULL([test2])) AND [test2] < [minimum]
    THEN [minimum] - [test2]
    ELSEIF (NOT ISNULL([test2])) AND [test1] < [minimum]
    THEN [minimum] - [test1]
    END
    

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

    【讨论】:

    • 感谢您的帮助。
    【解决方案2】:

    在这种情况下,测试 null 是多余的(不必要的)。

    引用具有 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()。

    【讨论】:

      猜你喜欢
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      • 2017-03-11
      • 1970-01-01
      • 1970-01-01
      • 2018-04-26
      相关资源
      最近更新 更多