【发布时间】:2017-03-15 14:46:29
【问题描述】:
我有 3 个类别的维度 以及总销售额的衡量标准 我想要该类别的一项与总数之间的比率
例如 - 我有一些水果(苹果、橙子、草莓) 我想要苹果销售额除以总销售额的比率
语法有问题
sum(([sales(fruit)='Apple']))/sum([sales])
【问题讨论】:
标签: calc tableau-api
我有 3 个类别的维度 以及总销售额的衡量标准 我想要该类别的一项与总数之间的比率
例如 - 我有一些水果(苹果、橙子、草莓) 我想要苹果销售额除以总销售额的比率
语法有问题
sum(([sales(fruit)='Apple']))/sum([sales])
【问题讨论】:
标签: calc tableau-api
您可以使用条件聚合来做到这一点。基本上,您只需在聚合函数中嵌入 if 语句,如下所示:
SUM(IF [fruit] = 'Apple' THEN [sales] END) / SUM([sales])
分子SUM 忽略所有非苹果,而分母包括所有水果。
【讨论】:
user3581800,非常相似的解决方案,但更强大(也更复杂)是使用所谓的细节级别 (LOD) 表达式。
主要的好处是,如果您需要使用它们,它们将允许您“覆盖”过滤器(例如,尝试为“Orange”添加 exclude 过滤器)。让我们创建一个新计算的字段 总销售额:
{ FIXED : SUM([Sales]) }
无论如何,这将产生总销售额,然后您可以按照 Nicarus 在他的回答中建议的那样创建一个计算字段,即使这个字段应该更灵活:
SUM( IIF([Fruit] = "Apple", [Sales], 0) ) / SUM( [Total Sales] )
详细了解LOD Expressions on Tableau blog 的力量。
【讨论】: