问题使用表计算时,总计和小计可能会显示意外结果。用于将总计的聚合类型更改非“自动”类型的选项显示为灰色。例如,视图显示各季度平均区域销售额的差异。自动总计不正确:其显示全部季度的平均销售额差异,而不是平均区域销售额差异的总和。
解决方案选项 1:使用 LOD 函数重写计算 在某些情况下,可以使用详细级别 (LOD) 函数替代表函数来重写计算。有关详细信息,请参见在 Tableau 中创建详细级别表达式。重写计算之后,可以使用“汇总依据”设置来更改总计。有关指引,请参见配置合计聚合。 选项 2:向视图中添加其他详细信息,并调整表计算 合计是会忽略“行”功能区上的详细信息的特殊行。因此,若要强制在总计中按正确的详细级别运算表计算,则必须向视图中添加附加维度。然后将必须修改视图中的所有度量以考虑附加维度。以下说明从本文右侧的“附件”部分中的工作簿的工作表“Example 1: original view”(示例 1:原始视图)开始。工作簿中嵌入了有关如何创建原始视图的指引。 对于“行”功能区上的每个维度,在数据窗格中右键单击维度,并选择“复制”。在此示例中,唯一的“[Region]”(区域)位于“行”功能区上。将“[Region (copy)]”(区域(副本))拖到“标记”卡上的“详细信息”创建计算字段: 选择“分析”>“创建计算字段”在“创建计算字段”对话框中,执行以下操作,然后单击“确定”:为字段命名。在示例中,此字段名为“New Difference Between Average Sales”(平均销售额新差异)输入以下公式: IF FIRST() = 0 THEN WINDOW_SUM([Difference Between Average Sales]) END 在“标记”卡的“文本”上将“[Difference Between Average Sales]”(平均销售额差异)替换为“[New Difference Between Average Sales]”(平均销售额新差异)在视图中右键单击“[New Difference Between Average Sales]”(平均销售额新差异),并选择“编辑表计算...”在“表计算”对话框中,执行以下操作并关闭对话框: 在“嵌套计算”下的下拉列表中,选择“Difference Between Average Sales”(平均销售额差异)选择“表(横穿)”。注意:这是原始视图中“Difference Between Average Sales”(平均销售额差异)的“计算依据”设置在“嵌套计算”下的下拉列表中,选择“New Difference Between Average Sales”(平均销售额新差异)选择“特定维度”仅选中重复的字段。在此示例中为“Region (copy)”(区域(副本)) 导航到“分析”>“堆叠标记”>“关”
原因设置为“汇总依据”>“自动”的合计将跨整个数据集计算度量(就好像视图中的表不存在一样)。如果表计算仅使用加法聚合(例如 SUM() 等),则自动总计通常将是正确的。)。例如,各个单独销售额的总和将与每个客户的销售额总和汇总相同。如果表计算引用任何使用非加法聚合(例如,除法、乘法、MIN()、AVG() 等)的字段,则合计不等于视图中数字的总和。例如,各个单独销售额的平均值(也称为总体平均值)与每个客户的销售额平均值汇总不同。当前只有“自动”合计可用于表计算。为了表达您对在将来的产品版本中包括此增强功能的支持,请为以下社区理念投下您的一票:在显示的标记而来是单独的计算上进行合计和小计(也就是说,像 Excel 一样进行小计)
其他信息如果问题在未使用表计算的字段上发生,则可以改为更改“汇总依据”设置。有关指引,请参见配置合计聚合。 有关选项 2 的注意事项 附带的工作簿包含涵盖其他使用案例的其他示例WINDOW_SUM() 函数模拟“汇总依据”>“总和”操作。对于其他总计聚合,请使用对应的表函数(为平均合计使用 WINDOW_AVG(),为最小合计使用 WINDOW_MIN(),为自动合计使用 TOTAL(),等等...)此示例显示列总计,它显示为视图中的一行。对于使用行总计的视图,请按照相同说明进行操作,并将“行”替换为“列”如果原始视图包含多个度量,则必须将所有度量转换为像步骤 3 中的计算一样的计算,即使度量不是表计算。有关更多详细信息,请参见附带的工作簿中的“Example 2”(示例 2)。在此示例中,原始表计算按“行”功能区上的所有维度进行分区(也就是说,在“表计算”对话框中取消选中了“[Region]”(区域))。如果原始表计算处理重复的维度,则在步骤 6-2 中也必须选中重复字段。有关更多详细信息,请参见附带的工作簿中的“Example 4”(示例 4)。步骤 6 是为“[Difference Between Average Sales]”(平均销售额差异)中的表函数(即 LOOKUP())以及“[New Difference Between Average Sales]”(平均销售额新差异)中的表函数(即 FIRST() 和 WINDOW_SUM())设置单独的“计算依据”设置。有关如何为嵌套表计算设置“计算依据”设置的详细信息,请参见自定义表计算
此文章是否已解决问题? 感谢您提供该文章是否有效的反馈。 单击此处返回我们的“支持”页面。 打开新案例 打开一个新案例 继续搜索 单击此处转到我们的“支持”页面。 知识库 为您的疑问与技术问题提供详细的答案与分步使用说明。 社区 通过论坛、用户群与想法,利用我公司的活动社区查找与分享解决方案。 产品帮助 浏览产品手册和指南的完整列表。可以在线、离线和 PDF 格式提供。 培训和教程 了解如何借助我们的点播、直播或课堂培训来掌握 Tableau 的各种产品。