Loading

无法将度量转换为维度

发布日期: Jan 4, 2023
描述
在创建计算字段时,Tableau Desktop 可能会将字段识别为度量,而不是维度。尝试将字段转换为维度时,可能无法进行。

Cause

如果计算字段中使用了聚合,则无法将度量转换为维度,原因是计算结果是动态的。

例如,当 [Region] 位于行功能区上时,以及当 [Category] 位于行功能区上时,SUM( [Sales] ) 将返回不同的结果。但是,表达式 {FIXED [Region] : SUM( [Sales] ) } 将始终是每个地区的总销售额。 添加 FIXED 语句告诉 Tableau 如何计算 SUM(),然后告诉 Tableau 如何根据每个记录所属地区的总销售额对其进行分组。

 
解决方案

选项 1:添加 FIXED 语句

详细级别 (LOD) 函数 FIXED 可以转换为维度。根据原始计算,确切的解决方案会有所不同,但请记住,计算作为一个整体必须是非聚合的(FIXED、非聚合的字段、参数和常量文字值都是非聚合的)。请参见以下示例:
 

示例 1

只能是度量:
IF SUM([SALES]) < 100
THEN "low"
ELSE "High"
END	
可以转换为维度:
IF { FIXED [Region] : SUM( [Sales] ) } < 100
THEN "low"
ELSE "High"
END	
 

示例 2

只能是度量:
AVG( 
   IF { FIXED [Region] : SUM( [Sales] ) } < 100 
   THEN "low" 
   ELSE "High" 
   END 
)
可以转换为维度:
{FIXED [Category] : AVG(
   IF { FIXED [Region] : SUM( [Sales] ) } < 100
   THEN "low"
   ELSE "High"
   END
) }
 

示例 3

只能是度量:
ATTR( [Category] ) + " value"
可以转换为维度:
{ FIXED [Order ID] : MIN( [Category] ) } + " value"
 
注意:ATTR() 必须替换为 MIN(),因为 ATTR() 是一个表函数,不能在 FIXED 表达式中使用。如果视图中的一个分区(行、单元格、条形图、线点等)中有多个唯一的 [类别] 值,ATTR() 将返回 NULL,这有助于识别数据质量问题。另一方面,MIN() 将始终返回最小值,即字符串值的第一个字母顺序。只要 MIN( [类别]) 固定为一个维度或维度组合,并且总是只有一个类别值,就不会有问题。
 

选项 2:删除聚合

有时实际上并不需要聚合。例如,{ FIXED [Region] : SUM( [Sales] } 返回每个地区的总销售额,但如果数据源在每个地区只有一条记录,则 [Sales] 将返回相同的值。
 

示例 1

只能是度量:
IF SUM([SALES]) < 100
THEN "low"
ELSE "High"
END	
可以转换为维度:
IF [Sales] < 100
THEN "low"
ELSE "High"
END	

 

选项 3:使用 Tableau 生成的数据桶字段

在某些情况下,可以用 Tableau 生成的数据桶字段替换原始计算。请参见依据连续度量创建数据桶
了解有关说明。
 

选项 4:在 Tableau Prep 中进行计算

Tableau Prep 的输出将始终是非聚合的,因此始终可以转换为维度。根据最初的计算,Tableau Prep 中所需的步骤会有所不同。通常,要在 Tableau Prep 中复制 SUM( [Sales]) 这样的表达式,您将需要使用聚合步骤

表格计算不能是非聚合的,因为它们不能放在详细级别函数内。某些表格计算可以在 Tableau Prep 中重新创建。例如,LOOKUP() 有时可以替换为移位自联接。请参见在 Tableau Prep 中查找表格计算
 

选项 5:联接数据而不是使用数据混合

辅助数据源中的字段必须聚合。这是数据混合的局限性,没有解决方法。考虑跨数据库联接Tableau Prep 中的联接
 
其他资源

Tableau 为什么要用维度和度量?

Tableau 利用非常不同的数据源之间共享的数据的公共属性,以便就如何显示数据做出明智的决定。

例如,您的数据源包含一个带有数值的字段,但该字段被命名为“ID”。  当您将“ID”添加到行功能区中,您会为每个 ID 获得一行,而不是获得将所有 ID 值加在一起的无意义的条形图。  Tableau 如何知道要这么做?  名为“ID”的字段是一种特殊情况,默认情况下被视为维度。

维度包含用于对其他数据进行分组的数据,因此 Tableau 知道维度通常应该是标题而不是图表,即使维度包含数字数据。 

维度度量是数据管理中的概念,为 Tableau 提供了有关数据显示方式的线索。有关 Tableau 如何处理维度和度量的更多信息,请参阅维度和度量,蓝色和绿色

 
知识文章编号

001473640

 
正在加载
Salesforce Help | Article