Tableau api 如果tableau计算字段中的零件未执行

Tableau api 如果tableau计算字段中的零件未执行,tableau-api,Tableau Api,我想在tableau中创建一个计算字段,它的值应该依赖于另一个字段的值。下面是计算字段[D]的计算结果 IF [A]=NULL THEN [B] ELSE [C] END 此计算字段始终分配else部分中的值([D]填充有[c]的值)。 注意:[A]、[B]和[C]是表中现有的字段(都是字符串类型)试试这个: IF ISNULL([A]) THEN [B] ELSE [C] END 字段中的Null值表示字段中没有任何内容,并且未存储值Null 如果确实要在字段中比较NULL,那么如果ISN

我想在tableau中创建一个计算字段,它的值应该依赖于另一个字段的值。下面是计算字段[D]的计算结果

IF [A]=NULL
THEN [B]
ELSE [C]
END
此计算字段始终分配else部分中的值([D]填充有[c]的值)。 注意:[A]、[B]和[C]是表中现有的字段(都是字符串类型)

试试这个:

IF ISNULL([A])
THEN [B]
ELSE [C]
END

字段中的Null值表示字段中没有任何内容,并且未存储值
Null


如果确实要在字段中比较
NULL
,那么如果ISNULL([a]),则使用as
。对于基于文件的数据源(如Excel或CSV),如果[A]=''
,您还可以使用
检查空字符串,因为这些数据源不区分空字符串和空字符串。

正如其他人所指出的,您可以使用ISNULL()测试字段是否有空值。使用ISNULL()测试是否存在值与使用相等值测试值不同

这与您所问的情况不完全相同,但有时,您可能希望在没有指定值的情况下使用字段的默认值,在这种情况下,IFNULL()函数很有用。如果存在非空值,则返回第一个参数的值,否则返回第二个参数的值

假设您有一个名为Approver的字段,如果数据中没有指定Approver,那么默认值为“Fred”。可靠的方法是首先:

  • 将Tableau中的Approver字段重命名为(比如)Approver Original
  • 将新审批人字段定义为
    ifnull(审批人原件,“Fred”)
  • 隐藏字段审批人原始名称
然后,您可以在任何地方安全地使用Approver,因为您知道它总是有一个值,并且关于应用默认值的信息就在一个地方

对于数值字段,还有一个名为ZN()的函数,如果参数为null,该函数将返回零。在零是正确默认值的情况下非常有用

在某些情况下,所有这些都是有意义的,其中有一个默认值来替换null是有意义的


还有一些情况下,您确实希望将值保留为null以表示缺少数据,例如,对于单身人士,名为“配偶”的字段将为null。在这种情况下,指定一个默认的配偶是错误的,而且可能不受欢迎。ISNULL()在这种情况下很有用。

测试空字符串是否相等不是对空值的有效测试。@AlexBlakemore这是比较空值的原始方法,尽管您有一个函数
ISNULL
,但它可以工作我不确定是否理解您的注释。您是说,如果在SQL Server之类的数据库中有一个名为Name的字符字段,并且Name字段中的行中有一个空值,那么在这种情况下,“Name=''”将返回true?或者您只考虑Excel之类的文件源?@AlexBlakemore是的,您是正确的,它将返回true caseok,我相信这是使用基于文件的数据源(如Excel或csv)的产物,并且基于true数据库的数据源以不同的方式处理空字符串和空字符串(即,使用数据库数据源测试将返回false). 我将编辑答案以澄清这一点,并删除我的否决票