COUNTIFS 其中一个条件是 Tableau 中的“数字必须是唯一的”

问题描述

有没有办法计算 Tableau 中列中的唯一数字?

COUNT(IF [Type] = "Boxes" AND [Ordernumber] is unique THEN 1 END)

在我的数据中,多行具有相同的订单号。 我想要所有 [Type] = "Boxes" 并且具有唯一订单号的行。 示例:

类型 订单号
盒子 10000000
盒子 10000000
盒子 10000001
杂项 10000002
盒子 10000003

应该等于2。

解决方法

让我们假设以下数据-

enter image description here

  • 现在添加以下计算字段,例如 dcount 与此计算
{FIXED [Type]: COUNTD([Ordernumber])}

此计算将返回每种类型的唯一计数,如下所示..

enter image description here

  • 现在也许(我不确定)您想排除所有重复值(因为在您的问题中,您已经为 boxes 编写了所需的输出为 2),创建此计算字段,例如 unique_count
IF 
{FIXED [Type],[Ordernumber] : COUNT([Ordernumber])} > 1
THEN 0 ELSE 1 END

现在比较两个字段的结果

enter image description here

,

这是一种方法,相对简单。

  1. 将类型放在过滤器架上,仅选择框,然后(重要)将其添加到上下文中(右键单击过滤器架上的字段以访问菜单)。属于“上下文”一部分的过滤器按操作顺序在早期应用。
  2. 将 OrderNumber 放在过滤器架上。在过滤器对话框中,转到条件选项卡并选择 COUNT([OrderNumber]) = 1。
  3. 现在您的数据已根据需要过滤。通过过滤器的数据对于每个只有一条记录的订单号将有一条记录——在您首先忽略不引用框的任何数据行之后。

请注意,您可能需要有关 Type="boxes" 过滤器的不同语义。也许您想先消除多行的订单,然后只查看带框的记录。如果是这样,请尝试更改上下文中的过滤器,以查看以不同顺序应用过滤器的影响。

,

您可以使用 COUNTD() 函数来实现此目的。假设您的数字在名为“数字”的列中,您应该创建一个计算为 COUNTD([Number])。

对于您给出的示例,这将返回值 5。