Tableau api 表混合数据

Tableau api 表混合数据,tableau-api,Tableau Api,我的任务是建立数据计数的表格工作表,最终创建百分比,其中人为输入的数据如下所示 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 我只使用了大约4个小时的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
我只使用了大约4个小时的Tableau,所以这可行吗?谁能给我指出正确的方向吗


数据是以我可以控制的格式从SQL Server数据库输入的,如果这种格式有助于解决方案的制定。

这是一个集合的良好用途

在左侧边栏的数据窗格中,右键单击Id字段并创建一个名为Ids的集合,该集合至少包含一个lemon或使用较短的不太精确的名称

在“集合定义”对话框面板中,通过从“常规”选项卡中选择“全部使用”来定义集合,然后在“条件”选项卡上,通过公式max[Fruit]=lemon来定义条件

有很多方法可以考虑一个集合,但最抽象的方法只是作为满足条件的一组ID的数学集合。请记住,每个Id都有许多数据行,因此该条件是许多数据行的函数,并使用聚合函数MAX。对于布尔值,True被视为大于False,因此,如果至少一个数据行满足该条件,MAX将返回True。相反,只有当所有非空数据行都满足条件时,MIN才为真

一旦你有了一套将你的身份证分为柠檬味身份证和其他身份证,那么你就可以通过多种方式使用该套身份证——在计算字段中,在过滤器中,与其他身份证组合使用来创建新的身份证集,当然也可以在书架上进行可视化

要获得问题所寻求的结果,可以将新集合放在行工具架上,并将CNTDID放在文本工具架或列工具架上。请确保您理解为什么这里需要计算不同的CNTD而不是总和[记录数]


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

Alex基于集合的解决方案非常适合此场景,但我想说明,如果需要扩展解决方案以包括更多类别,LOD可以更灵活。 对于当前场景,使用以下公式创建计算,并使用COUNTDId创建文本表

{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}
现在,可视化将自动更改以包括新类别。这可以扩展到任何数量的水果


你需要两套数据,一套用于柠檬,另一套用于休息,对吗?@Siva-是的,前提是物品不重复计算。如果一个id被算作柠檬,那么它就不应该被算作非柠檬。也可能需要其他组合好的,所以你需要计算所有水果的数量,同时没有相同ID的重复计数,对吗?没有相同ID的重复计数:所以我们总人口的50%有柠檬水果,50%的ID没有柠檬,非常感谢您的解释,并解释了很多我以前不理解的地方。然而,我得到的结果给了我一个结果计数1柠檬和1非柠檬与2X2,我期待。我一定是错过了什么。你确定你错过了吗?您可以发布工作表的图像吗?尝试将屏幕截图添加到发布中。有趣的是,与1X1相比,我现在得到了2X4的答案,这是朝着正确方向迈出的一步,我认为这是一个很好的答案。当我读到这个问题时,我只想到LOD。如果不查看数据和集合的定义,则无法调试示例。你能邮寄吗。你的集合应该是一组遭遇战,而不是一组柠檬。编辑集合并查看“常规”选项卡的“摘要”部分时,摘要中列出了哪些字段?这一点很好。是的,LOD计算比集合更通用。LOD CALC可以有任何值,而集合实际上是布尔值函数——true或false、in或out。只是要清楚,您理解上面的条件表达式是如何工作的。如果至少有一个柠檬,那么即使还有苹果,值也将是Lemon。我知道这只是一个简单的例子,但如果有更多的ID类别同时包含苹果和柠檬,那么就不太可能让人混淆了。我接受Jose的回答,因为它的可扩展性。感谢Jose、Alex和Siva的时间和帮助。@Jose Cherian。。请您帮助解释一下,如果MAX[Fruit]=lemon,那么lemon,否则没有lemon END,而不是set和LoD,为什么此语句在正常计算字段中不起作用。。