上次修改日期: 20 Jul 2023
环境
Tableau Desktop答案
选项 1:使用 Tableau Deskop 中的表计算
步骤 1:创建计算
- 使用类似于如下的计算创建一个名称类似于“Create the list”(创建列表)的计算字段:
IF FIRST()= 0
THEN MIN([Sub-Category])
ELSE PREVIOUS_VALUE("") + ", " + MIN([Sub-Category])
END - 使用类似于如下的计算创建一个名称类似于“Sub-Category List Label”(子类列表标签)的计算字段:
WINDOW_MAX([Create the list]
)
编辑附带的工作簿中的计算字段,了解有关这些计算的工作方式的其他说明。
步骤 2:创建条形图视图
- 将“[Category]”(类别)和“[Sub-Category]”(子类)拖到“行”功能区
- 将“[Sales]”(销售额)拖到“列”功能区
- 将“[Sub-Category]”(子类)拖到标记卡上的“颜色”
注意:必须在视图中包括“[Sub-Category]”(子类),计算才能正常工作。如果最终视图不应包括工具提示中列出的维度,请参阅“高级选项 1”工作表/选项卡,以获取附加示例工作簿中的附加说明 - 列出维度值_v2018.1.twbx - 将“[Sub-Category List]”(子类列表)拖到标记卡上的“工具提示”
- 在“工具提示”上右键单击“[Sub-Category List]”(子类列表),并选择“计算依据”>“Sub-Category”(子类)
选项 2:使用 Tableau Prep
- 添加一个步骤
- 在“Clean 1”(清理 1)中右键单击“[Sub-Category]”(子类),并选择“复制字段”
- 添加聚合
- 在“Aggregate 1”(聚合 1)中,执行以下操作:
- 将类别添加到分组字段
- 在“其他字段”列表中查找“Sub-Category”(子类),单击“分组”,并选择“最小值”(这会将“ MIN(Sub-Category)”添加到“聚合字段”)
- 在“聚合字段”中右键单击“MIN(Sub-Category)”,并选择“重命名”。将其重命名为类似于“Sub-Category (first)”(子类(第一个))的名称
- 将“MAX(Sub-Category-1)”添加到“聚合字段”
- 将“MAX(Sub-Category-1)”重命名为类似于“Sub-Category (last)”(子类(最后一个))的名称
- 将“Aggregate 1”(聚合 1)拖到“Clean 1”(清理 1)上,并将“Aggregate 1”(聚合 1)拖到“联接”上
- 从“Join 1”(联接 1)中添加一个步骤
- 在“Clean 2”(清理 2)中,使用类似于如下的公式创建一个名为“Filtered Sub-Category”(经筛选的子类)的计算字段
IF [Sub-Category] != [Sub-Category (first)] AND [Sub-Category] != [Sub-Category (last)] THEN [Sub-Category] END
- 在“Clean 2”(清理 2)中,复制“[Filtered Sub-Category]”(经筛选的子类)
- 在“Clean 2”(清理 2)中,移除“[Category-1]”(类别 1)和“[Sub-Category]”(子类)
- 重复步骤 3-9,根据需要创建任意多个字段。在此示例中,包含最多子类的类别具有 9 个子类,因此准备流程需要 5 个聚合步骤来创建 10 个字段,以便不会遗漏任何子类。
- 在最后一个“清理”步骤中,使用类似于如下的公式创建一个名称类似于“Grouped sub-categories”(分组的子类)的计算字段:
IF ISNULL([Sub-Category (first)]) THEN '' ELSE [Sub-Category (first)] + ' ' END + IF ISNULL([Sub-Category (second)]) THEN '' ELSE [Sub-Category (second)] + ' ' END + IF ISNULL([sub-category (third)]) THEN '' ELSE [sub-category (third)] + ' ' END + IF ISNULL([sub-category (third to last)]) THEN '' ELSE [sub-category (third)] + ' ' END + IF ISNULL([Sub-Category (second to last)]) THEN '' ELSE [Sub-Category (second to last)] + ' ' END + IF ISNULL([Sub-Category (last)]) THEN '' ELSE [Sub-Category (last)] + ' ' END
上面的计算合并创建的所有子类字段。如果子类字段具有 NULL 值,则必须将 NULL 替换为一个空字符串(也称为两个引号 ''),因为将值与 NULL 值合并始终会生成 NULL。 - 输出数据
其他信息
为了表达您对在将来的产品版本中包括此增强功能的支持,请为以下社区理念投下您宝贵的一票:将跨行的字段值连接成逗号分隔的列表。感谢您提供该文章是否有效的反馈。
打开新案例
继续搜索
知识库
社区
产品帮助
培训和教程