【问题标题】:Count of group dimensions item in TableauTableau 中的组维度项目计数
【发布时间】:2019-06-05 21:56:43
【问题描述】:

我对 tableau 还很陌生,我遇到了以下问题。下面是我正在使用的数据示例。

Customer No | Item
___________________
 1            A
 1            B
 2            A
 3            A
 4            A
 4            B
 5            B
 6            A

我试图计算有多少客户购买了物品 A 和 B。到目前为止,我尝试通过组合 A 和 B 来做一个单独的组,但我得到的总结果是 8。我还尝试进行计算并我得到了与 8 相同的结果。有人可以指出我如何获得这个结果的正确方向。谢谢!

这是我想要得到的结果:

Item| Count
A             5
B             3
A and B       2

【问题讨论】:

  • 您需要使用 countd 聚合函数,然后打开总计。切换总计以使用 countd 聚合。
  • 感谢山姆的建议。我对我的原始帖子进行了一些编辑。我试图在我的图表项目 A 、项目 B 和项目 A 和 B 上获得 3 列。你建议我如何组成组?

标签: tableau-api


【解决方案1】:

我重新创建了您的确切数据集并将其粘贴到 Tableau 中,以便您查看几个示例。

您可以通过以下方式查看购买单个商品的客户数量以及同时购买这两种商品的客户数量。

您的计算将是:

IF { FIXED [Customer No]: COUNTD([Item]) } = 1 THEN
    [Item]
ELSE
    'Both A and B'
END

您需要将视图设置为如下所示:

您可以通过以下方式查看两件商品的购买时间。

  1. 布尔或 您要使用的计算是:

    ATTR([ITEM]) = 'A' 或 ATTR([ITEM]) = 'B'

您需要将视图设置为如下所示:

  1. A、B 或两者 如果您希望结果更具特异性,您可以尝试:

    IF ATTR([Item]) = 'A' THEN '一种' ELSEIF ATTR([Item]) = 'B' THEN '乙' 别的 '两个都' 结束

将之前的计算替换为新的看起来像这样:

  1. 超过 1 项 如果购买的特定物品无关紧要,您可以使用此逻辑。

    COUNTD([项目]) > 1

用这个替换之前的计算如下所示:

  1. 超过 1 个项目使用窗口函数(可能矫枉过正) 您需要使用的计算方法是:

    WINDOW_COUNT(COUNTD([项目]))

因为这是一个 Window 函数,我们需要指定它是如何跨维度计算的。为此,请单击药丸右侧的向下箭头,然后选择编辑表计算...

然后您需要设置这些设置:

我会将我们在第一个示例中创建的计算([A 和 B])添加到过滤器架子并选择 True。这应该给你一些看起来像:

  1. 超过 1 项使用详细级别表达式 这个例子的计算是:

    { 排除 [项目]: COUNTD([项目]) }

您将看到如下所示:

如您所见,Tableau 非常灵活。希望这些示例对您有所帮助!

【讨论】:

  • 您好 Rob,感谢您的回复和截图,这真的很有帮助。我试图在我的图表上显示 3 列项目:项目 A 、项目 B 和(项目 A 和 B),并且在行上显示不同的客户编号。这种方法也行得通吗?
  • 其实是的。我已经更新了答案,向您展示了一种我能够得到答案的方法。我相信还有很多其他方法。如果 Tableau 中的计算开始变得过于棘手,我会在外部创建计算,然后简单地使用 Tableau 以一种引人入胜/信息丰富的方式可视化结果。
  • @SQLnoob 如果该解决方案对您有用,您介意将答案标记为正确吗?否则,请让我知道我还能为您提供什么帮助。谢谢!
  • 您好 Rob,非常感谢您的计算!
【解决方案2】:

您可能希望使用 Tableau 的设置功能来解决此类问题。

例如,右键单击数据窗格(即左侧边栏)中的 [客户编号] 字段,然后选择“创建集”命令。单击设置面板顶部的“全部使用”,然后单击条件选项卡。使用条件MAX([Item] = “A”) 定义集合。将集合命名为“购买 A 的客户”。

同样,创建一组购买了商品 B 的客户。然后您可以在数据窗格中选择这两个组,并创建一个组合集作为交集,即同时购买了商品 A 和商品 B 的客户.

您可以将集合视为属于该集合的字段成员的数学集合(即一组客户 ID)或为数据源中的每个数据记录定义的布尔函数,指示该数据是否记录与集合相关联(即一个布尔函数,它对事务进行操作以说明关联的客户 ID 是否在集合中。对于此处使用的条件公式要记住的一个关键是,条件是一个聚合公式,在客户 ID 的数据记录块,用于确定客户 ID 是否在集合中。

一旦您定义了您感兴趣的集合,您就可以通过多种方式使用它们 - 在计算字段中、作为过滤器、作为可视化中的架子上的维度、在集合操作中、与其他集合结合......

要定义一个计算集合中客户的度量,请创建一个计算字段,例如“[Num A Customers]”为COUNTD(if [Customers who bought A] then [Customer ID] end) 对您感兴趣的任何其他集合执行相同操作。然后您可以使用这些度量(可能带有度量名称和度量值)来制作您的可视化。

【讨论】:

  • 您好 Alex 感谢您的回复,我会试一试,我会告诉您进展如何。谢谢!
  • 很好,我一直在寻找一种方法来使用套装,但对它们没有太多经验。感谢分享!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-08
  • 1970-01-01
  • 2012-01-07
  • 2016-08-31
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
相关资源
最近更新 更多