Tableau 混合数据

Tableau Mixed Data

我的任务是设置数据计数的 Tableau 工作表(最终创建百分比),其中人为输入的数据如下所示。

id  fruit
1   apple
1   orange
1   lemon
2   apple 
2   orange
3   apple 
3   orange
4   lemon
4   orange

工作表需要如下所示:

Count of ids
2   Lemons
2   No lemons

我只使用 Tableau 大约 4 个小时,这可行吗?谁能指出我正确的方向?

数据来自 SQL 服务器数据库,格式我可以控制,如果这有助于解决问题。

这套用起来不错

在左侧边栏的数据窗格中,右键单击 Id 字段并创建一个名为 "Ids that contain at least one lemon" 的集合(或使用更短、不太精确的名称)

在集定义对话框面板中,通过从“常规”选项卡中选择 "Use all" 来定义集,然后在“条件”选项卡上,通过公式 max([Fruit]="lemon")

定义条件

集合有多种理解方式,但最抽象的就是满足条件的 Id 的数学集合。记住每个Id都有很多数据行,所以条件是many个数据行的函数,使用了聚合函数MAX()。对于布尔值,True 被视为大于 False,因此如果至少有一个数据行满足条件,则 MAX() 将为 return True。相比之下,仅当所有(非空)数据行满足条件时,MIN() 才为真。

一旦你有了一个将你的 ID 分成柠檬味 ID 和其他 ID 的集合,那么你就可以以多种方式使用该集合 - 在计算字段中,在过滤器中,与其他集合组合以创建新集合,以及上架课程以进行可视化。

要获得您的问题所寻求的结果,您可以将新集放在行架上,并将 CNTD(ID) 放在文本架或列架上。确保您了解为什么在这里需要 count distinct (CNTD) 而不是 SUM([Number of Records])。

顺便说一句,LOD 计算 { fixed [Id] : max([Fruit]="lemon") } 实际上是相同的解决方案。

Alex 基于集的解决方案非常适合这种情况,但我想表明,如果您需要扩展解决方案以包含更多类别,LOD 可以更加灵活。 对于当前情况,使用以下公式创建计算并使用 COUNTD(Id)

创建文本 table
{FIXED [Id]:IF MAX([Fruit]='lemon') THEN 'Lemon'  ELSE 'No Lemon' END}

现在对于扩展部分,您正在考虑下面的列表,您要在其中计算 Lemon、Apple 和其他公司的 ID。由于不允许重复计算 ID,因此将按顺序进行分类。 (这种优先级没有LOD会很头疼)

现在您可以按如下方式更改您的计算方式:

{FIXED [Id]:IF MAX([Fruit]='lemon') THEN 'Lemon' 
            ELSEIF MAX([Fruit]='apple') THEN 'Apple' 
            ELSE 'No Lemon or Apple' END}

现在您的可视化会自动更改以包含新类别。这可以扩展到任意数量的水果。