提示与技巧:非重复计数的替代方法

无论是统计医院内的患者人数、非重复零售交易数量,还是机队中的飞机数量,非重复计数对于分析都至关重要。在 Tableau 中进行非重复计数极为简单,您可以通过一键式操作将聚合更改为非重复计数。但它也是执行过程中密集度较高的计算之一,因此可能会非常慢,尤其是在数据量巨大的情况下。您可以通过其他方法来获得与非重复计数相同的结果,我想在此分享几种这样的方法。

无论是统计医院内的患者人数、非重复零售交易数量,还是机队中的飞机数量,非重复计数对于分析都至关重要。在 Tableau 中进行非重复计数极为简单,您可以通过一键式操作将聚合更改为非重复计数。但它也是执行过程中密集度较高的计算之一,因此可能会非常慢,尤其是在数据量巨大的情况下。您可以通过其他方法来获得与非重复计数相同的结果,我想在此分享几种这样的方法。

首先,我要简要介绍一下非重复计数的原理。为了确定数据集中有多少个非重复的项,我们需要将每条记录与所有其他记录进行比较。如果数据集包含大量数字,这会是一个非常费力的过程;如果要比较文本字段和字符串,这项工作会更加令人头疼。

您可以使用下方介绍的八种其他方法来获得非重复计数值。每种方法都有自己的缺点,但如果使用得当,它们可以更快地得出结果。在介绍这些技巧时,我会将您希望进行非重复计数的维度称为“维度 X”。我们还在最后部分为您提供了一个工作簿,其中包含所有 8 个选项的示例。

  1. 可视化备忘单:将维度 X 放到“详细信息”上,然后将“记录数”字段放到“行”上,将其更改为“最小值”(或“最大值”、“平均值”或“中位数”)。此操作将创建一堆小条形(每个条形对应于维度 X 的每个实例),当堆叠在一起时,这些条形的总数等于维度 X 的非重复计数值。

  2. 提取和聚合:创建数据提取并根据维度 X 的出现次数对其进行聚合。这意味着您现在可以直接计数,而不需要进行非重复计数,这更容易计算。

  3. 使用 SIZE():这与第 1 种方法类似,但可以提供更好的可视化,并且可以更加灵活地进行其他类型的分析。表计算“SIZE()”会对分区中的行数进行计数。直接在计算字段中键入“SIZE()”,然后将其放到您的工作表上,使其沿维度 X 进行计算(请确保将维度 X 拖至“详细信息”上)。

  4. 筛选至单一列表:这是一种简单的方法,前提是您可以筛选维度 X 的某一个实例之外的所有实例。理想情况下,这也意味着维度 X 出现相同的次数。例如,在一项调查中,每个受访者都必须提供相同数量的答案。您可以先筛选到一个问题,然后再进行简单的计数,而不是对受访者进行非重复计数。

  5. 混合一个单一列表:与维度 X 建立新的数据连接,让每个实例成为一个简单的行。然后,将这些数据与第一个数据源混合,并使用第二个数据源中的“记录数”字段。这种方法需要在 Tableau Desktop 8.0 中进行操作。

  6. 编写数学计算:没错,就是编写一个计算来根据维度 X 的出现次数对其进行调整。请参阅示例工作簿中的示例。

  7. 修改数据模型:这需要更改数据本身,因此可以选择第 4 种方法。在第一次出现的维度 X 中添加一个列或某种标记或指示器。将数据重新连接到 Tableau 并希望执行非重复计数时,只需筛选到添加的指示器并进行简单计数即可。

  8. 自定义 SQL:这是灵活性最低的选项,您必须知道如何编写 SQL,在某些情况下,编写过程会非常复杂。首先尝试使用 Tableau 的 COUNTD 函数,看看这是否值得。

这是一个示例工作簿,其中包含所有 8 种选项的工作示例(由 Marc Rueter 提供)。