知识库

何时使用属性 (ATTR) 函数


发布时间: 27 May 2014
上次修改日期: 30 Nov 2023

问题

属性 (ATTR) 函数的工作原理以及它与 MIN 或 SUM 之类的其他聚合的不同之处。

环境

Tableau Desktop

答案

ATTR() 指明多个值

ATTR() 聚合指明存在多个值,但只需要一个值。

例如,在混合两个或更多数据源时,会将来自辅助数据源的字段自动包含在 ATTR() 中,原因是必须对来自辅助数据源的字段进行聚合。如果辅助维度有多个值,则 ATTR(Secondary Dimension) 将在视图中显示星号,数据混合疑难解答:星号出现在工作表中中进行了进一步说明。

如果使用另一个聚合替代了 ATTR(),则 Tableau Desktop 将会显示误导信息。例如 MIN(Secondary Dimension) 将显示第一个维度值,并且无法确定辅助数据源中实际有多个值。星号表明关系或视图需要调整。
 

工作方式

ATTR() 会比较基础数据的每条记录中分组为视图中的一个分区(例如,一个条形、一个圆圈、一个单元格等)的所有值,并且,如果值均相同,则 ATTR() 将返回该值。否则 ATTR() 将返回星号。

公式最简单的格式如下所示:
 
IF MIN ([dimension]) = MAX ([dimension]) THEN MIN ([dimension]) ELSE "*"  END

ATTR 函数将对字段中的所有成员求值,如果 1) 只有一个值 (MIN = MAX),或者 2) 所有成员都相同 (MIN = MAX),则返回 1;否则返回 "*"。这可以解释为“有多个值”。

您可以通过添加应该触发 ATTR 函数的条件来构建基本的 ATTR 函数,例如:
 
IF ISNULL ([dimension]) THEN NULL
ELSEIF MIN ([dimension]) = MAX ([dimension]) THEN MIN ([dimension])
ELSE "*" 
END

 
(使用您自己的维度更新维度字段“[维度]”。)
 

ATTR() 的使用案例

  • 根据上面的示例,ATTR() 可指明辅助数据源中存在多个值
     
  • 添加到“标记”卡上的工具提示的维度会自动包含在 ATTR() 中,因为工具提示上的维度必须进行聚合。如果使用了另一个聚合(比如 MIN()),则工具提示将显示单一值,可能会产生误导,使查看者误认为只有一个值。因此,ATTR() 将显示星号,指明视图或添加到工具提示中的值需要调整。请参见工具提示中会显示星号
     
  • 与其他聚合一样,ATTR() 可用于将非聚合值更改为聚合值来解决计算中的聚合错误。请参见计算编辑器中的聚合错误消息

    请注意,当返回数值数据的计算包含 ATTR() 时,如果 ATTR() 中有多个值,则计算将返回 NULL,而不是星号。
     
  • ATTR() 可用作预防措施来防止数据更改

限制

此文章是否已解决问题?