【问题标题】:Tableau grouping by calculated fieldTableau 按计算字段分组
【发布时间】:2015-03-12 13:59:43
【问题描述】:

我在 SQL 中有一个数据集,可以按产品按客户拉动销售额。一些客户可以拥有多种产品,而另一些客户可能只有一种。我正在尝试按客户的总支出金额创建客户直方图,但我使用的分类是一种衡量标准,我不知道如何将其设为维度。

使用下表,AAA 的销售金额为 7500 美元,BBB 为 4000 美元,CCC 为 14,000 美元。我将使用以下内容:if SaleAmt > 10000 then "10K+", elseif SaleAmt > 5000 then "5K-10K, else "sub-5K" end,然后将其与countd(Client) 结合以获得直方图,理想情况下,它将显示 1:2:1 用于 10K+、5K-10K、低于 5K。

但是当我在 Tableau 中尝试此操作时,它会将 if 语句结果视为度量而非维度,而不是我可以分类的东西。在 Tableau 中是否有更好的方法来做到这一点?

Client    Product    SaleAmt
AAA       1          3500
AAA       2          4000
BBB       1          4000
CCC       4          7000
CCC       7          7000 
DDD       5          8000

【问题讨论】:

  • 其实你发布的计算字段使用的是SaleAmt作为维度。唯一的问题是它将逐行进行,因此 AAA1 和 AAA2 将低于 5k,而不是 AAA 为 5K-10K。您需要在将数据插入 Tableau 之前对其进行处理,使每个客户端一行。

标签: grouping tableau-api


【解决方案1】:

右键单击Product。点击Convert to Dimension

使用以下计算创建一个名为 Client Tier(或任何您想要的)的计算字段:

if SUM(SaleAmt) > 10000 then "10K+" 
elseif SUM(SaleAmt) > 5000 then "5K-10K" 
else "sub-5K" 
end

这将出现在您的“度量”中,但是将其药丸拖到“行”架子上会将其显示为谨慎的,您最终会得到理想的结果:

Client     ClientTier   SaleAmt
AAA        5K-10K       7,500
BBB        sub-5K       4,000
CCC        10K+         14,000
DDD        5K-10K       8,000

请注意,添加 Product 将“破坏”您的客户销售分层...

改为使用以下代码创建一个名为 Client Tier 的计算字段:

if WINDOW_SUM(SUM(SaleAmt)) > 10000 then "10K+" 
elseif WINDOW_SUM(SUM(SaleAmt)) > 5000 then "5K-10K" 
else "sub-5K" 
end

添加对WINDOW_SUM() 的第一个引用后,右上角将出现一个名为“默认表计算”的链接。单击它并在计算使用下选择“客户端”。这将为您提供所有产品(或您可能拥有的任何其他维度)的客户层级。

结果如下:

Client  Product ClientTier  SaleAmt
AAA     1       sub-5K      3,500
AAA     2       sub-5K      4,000
BBB     1       sub-5K      4,000
CCC     4       5K-10K      7,000
CCC     7       5K-10K      7,000
DDD     5       5K-10K      8,000

【讨论】:

    猜你喜欢
    • 2021-12-18
    • 2014-05-16
    • 2020-07-09
    • 1970-01-01
    • 2013-03-31
    • 2021-10-15
    • 2017-03-11
    • 1970-01-01
    相关资源
    最近更新 更多