知识库

自定义合计以显示与表不同的值


发布时间: 27 Jul 2016
上次修改日期: 02 Apr 2024

问题

如何自定义总计或小计以显示与视图的主表不同的值。例如,在总计中返回合计百分比,同时在视图中显示 SUM([Sales])。

环境

Tableau Desktop

答案

使用函数 SIZE() 在计算中区分视图的不同部分。附带的示例工作簿使用示例数据集“Superstore”来演示以下指引:

单击以展开步骤
选项 1:显示不同度量
  1. 使用以下公式创建一个名为“Custom GT”(自定义总计)的计算字段:
    IF Size() > 1
    THEN [<main table view measure>]
    ELSE [<grand total measure>]
    END
    
    • 例如,在使用“Sample Superstore”数据源的情况下,我们想要查看每个类别和子类别的最大利润,同时仍然查看销售额总计。计算字段将如下所示: 
      IF Size() > 1
      THEN MAX([Profit])
      ELSE SUM([Sales])
      END
      
  2. 将计算字段“[Custom GT]”(自定义总计)放在视图中。
  3. 右键单击计算字段“[Custom GT]”(自定义总计),并选择“编辑表计算...”,然后选择“区(横穿,然后向下)”
单击以展开步骤
选项 2:显示表计算,例如合计百分比
  1. 使用以下公式创建一个名为“Size”(大小)的计算字段:
    SIZE()
  2. 使用以下公式创建一个名为“Custom GT”(自定义总计)的计算字段:
    IF [Size] > 1
    THEN SUM(Sales)
    ELSE SUM(Sales)/TOTAL(SUM(Sales))
    END
    
  3. 使用所需的维度构建视图。
  4. 将计算字段“[Custom GT]”(自定义总计)放在视图中。
  5. “标记”卡中右键单击“[Custom GT]”(自定义总计),并选择“编辑表计算...”
    • “表计算”对话框中,将“嵌套计算”设置为“[Size]”(大小)
    • “计算依据”下,选择“区(横穿,然后向下)”并单击“确定”
  6. “标记”卡中右键单击“[Custom GT]”(自定义总计),并选择“设置格式...”
  7. 在左侧“设置格式”窗格中“合计”下的“数字”下拉列表中,选择“百分比”
单击以展开步骤
选项 3:自定义小计
  1. 使用以下公式创建一个名为“Size”(大小)的计算字段:
    SIZE()
    
  2. 使用以下公式创建一个名为“Number of”(数量)的计算字段:
    TOTAL(COUNTD([Region]+[Category]))
  3. 使用以下公式创建一个名为“Custom GT”(自定义总计)的计算字段:
    IF [Size] <= [Number of Subtotals]
    THEN AVG([Sales])
    ELSE SUM([Sales])
    END
    
  4. 使用所需的维度构建视图。
  5. 将计算字段“[Custom GT]”(自定义总计)放在视图中。
  6. “标记”卡中右键单击“[Custom GT]”(自定义总计),并选择“编辑表计算...”
    • “表计算”对话框中,将“嵌套计算”设置为“[Size]”(大小)
    • “计算依据”下,选择“表(向下)”并单击“确定”
  7. “标记”卡中右键单击“[Custom GT]”(自定义总计),并选择“设置格式...”
  8. 在左侧“设置格式”窗格中“合计”下的“数字”下拉列表中,选择“百分比”
要查看以下视频中显示的步骤,请展开上述部分。
注意:视频没有声音。
 

其他信息

  • 如果视图中只有一个度量,合计的格式只能设置为与默认值不同。如果在视图中有多个度量时必须将合计的格式设置为与表不同(例如,小数与百分比),请参见根据参数选择更改不同值的格式中的选项 2。
  • 函数 SIZE() 将返回视图一部分中的行数。由于总计只有一行,因此 SIZE() 将始终为总计返回 1。视图其他部分(例如小计)的大小将因视图中的行数而异。
“总计”和“小计”未显示表计算的预期数字
 
此文章是否已解决问题?