TABLEAU计算过去3个月内用户名上运行的DISTINCT COUNT

时间:2016-05-27 03:46:37

标签: tableau

问题:

需要每3个月间隔显示RUNNING DISTINCT用户^^。 (参见目标表作为参考)。但是,即使在表计算或“WINDOW_COUNT”或“WINDOW_SUM”函数之后,“COUNTD”也无济于事。

^^ RUNNING DISTINCT用户表示DISTINCT用户在一段时间内(1月 - 3月,2月 - 4月等)。 COUNTD选项仅在窗口中有COUNT个DISTINCT用户。此过程应该超过3个月的时间来查找DISTINCT用户。

Original Table
Date Username 1/1/2016 A 1/1/2016 B 1/2/2016 C 2/1/2016 A 2/1/2016 B 2/2/2016 B 3/1/2016 B 3/1/2016 C 3/2/2016 D 4/1/2016 A 4/1/2016 C 4/2/2016 D 4/3/2016 F 5/1/2016 D 5/2/2016 F 6/1/2016 D 6/2/2016 F 6/3/2016 G 6/4/2016 H

目标表 enter image description here

尝试的方法:

步骤一步: 试图将问题分解为步骤,但由于tableau的列式特性,我无法在解决方案的最后阶段成功运行COUNT或SUM(任何聚合命令)。

第0步原始数据

此表显示结构数据,就像在原始表中一样。

第1步按MONTH计算用户名

该表按月显示用户数。您会注意到,因为用户B有两个条目,他被计算两次。在下一步中,我们使用DISTINCT COUNT来解决此问题。

第2步按月分类的DISTINCT COUNT

现在我们可以看到一个月内所有人都在场,下一步是看看MONTH运行DISTINCT COUNT 3个月

第3步运行3个月的DISTINCT COUNT

现在我们可以看到运行3个月的DISTINCT COUNT个用户名的SUM。如果将MONTH INTERVAL从3变为1,则可以看到STEP 2表。

最后一步问题步骤

目标:需要将GRAND TOTAL作为MONTH列的SUM。

请求:

我想计算' 1'的总和。由MONTH。但是,我正在使用WINDOW函数并聚合给我一个错误的数据。

我需要什么

Jan Feb March April May Jun 3 3 4 5 5 6

我做了什么

Jan Feb March April May Jun 1 1 1 1 1 1

尝试方法后的我的输出:附加的twbx文件。 DISTINCT_count_running_v1

提供帮助:

2 个答案:

答案 0 :(得分:0)

我解决问题的方法是确定每个用户的最小登录日期,然后使用该日期计算不同的用户数。例如,我有data in this format。我创建了一个名为“最小用户登录日期”的计算字段,为{FIXED [User]:MIN([Date])},然后在“最小用户登录日期”上进行了CNTD(USER)以获取unique user count by date。如果要运行总计,则可以在CNTD(USER)字段上的运行总计上进行快速表计算。

答案 1 :(得分:-1)

您需要在列中添加月(日期)和计数(用户名),然后您将得到您期望的结果。 见下面的屏幕 enter image description here