【问题标题】:calculated field in tableau with categories带有类别的表格中的计算字段
【发布时间】:2017-03-15 14:46:29
【问题描述】:

我有 3 个类别的维度 以及总销售额的衡量标准 我想要该类别的一项与总数之间的比率

例如 - 我有一些水果(苹果、橙子、草莓) 我想要苹果销售额除以总销售额的比率

语法有问题

sum(([sales(fruit)='Apple']))/sum([sales])

【问题讨论】:

    标签: calc tableau-api


    【解决方案1】:

    您可以使用条件聚合来做到这一点。基本上,您只需在聚合函数中嵌入 if 语句,如下所示:

    SUM(IF [fruit] = 'Apple' THEN [sales] END) / SUM([sales])
    

    分子SUM 忽略所有非苹果,而分母包括所有水果。

    【讨论】:

    • 这样,您必须为每个项目创建一个专门的计算字段,这似乎不是最明智的做法......
    • 只有3个类别。根据问题,这完全可以管理并帮助 OP 使用语法。欢迎您提供“更聪明”的答案...
    • 我可以为每个组生成一个表格 - 行并将其视为使用“table down”计算的百分位数,以获得每个组的比率。我实际上认为创建计算字段更容易
    • 此外,它更“便携”,因为您不需要在视图中包含类别,您可以将其用作参考线等。
    • 可以,但是一旦开始使用过滤器等就无法使用了。
    【解决方案2】:

    user3581800,非常相似的解决方案,但更强大(也更复杂)是使用所谓的细节级别 (LOD) 表达式。

    主要的好处是,如果您需要使用它们,它们将允许您“覆盖”过滤器(例如,尝试为“Orange”添加 exclude 过滤器)。让我们创建一个新计算的字段 总销售额:

    { FIXED : SUM([Sales]) }
    

    无论如何,这将产生总销售额,然后您可以按照 Nicarus 在他的回答中建议的那样创建一个计算字段,即使这个字段应该更灵活:

    SUM( IIF([Fruit] = "Apple", [Sales], 0) )  /  SUM( [Total Sales] )
    

    详细了解LOD Expressions on Tableau blog 的力量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      相关资源
      最近更新 更多