Tableau api 为什么我的计算结果不能应用到我的过滤器表中

Tableau api 为什么我的计算结果不能应用到我的过滤器表中,tableau-api,Tableau Api,这是我的工作表 所以我想计算每个用户的每个交易之间的日差,这个例子中的用户在这个计算中是在filters PUL:True中 {Fixed [User Id]: sum( if [Created At]<=[END_DATE] then 1 else 0 end)}>=2 AND {FIXED [User Id]: sum( IF [Created At]<=[END_DATE] AND [Created At] >= [START_DATE] THEN 1 ELSE

这是我的工作表

所以我想计算每个用户的每个交易之间的日差,这个例子中的用户在这个计算中是在filters PUL:True中

{Fixed [User Id]: sum(
if [Created At]<=[END_DATE] then 1 else 0 end)}>=2
AND
{FIXED [User Id]: sum(
IF [Created At]<=[END_DATE] AND 
[Created At] >= [START_DATE] THEN 1 ELSE 0 END)}>=1
我还制作了日期范围的过滤器

lookup(min(([Created At])),0) >= [START_DATE] and 
lookup(min(([Created At])),0) <= [END_DATE]
说明:CF diff day的第一个变为空,因为它是该用户的第一笔交易,在此之前该用户没有再次进行交易,第二个变为“0”,因为没有日期不同,不同的只是小时,但虽然是同一天,所以不会有不同的天,并且计数为0


根据@Anil的建议,这是我的工作簿表链接

我认为您的PUL字段有一些错误。您可能应该将此字段的计算更改为

{Fixed [User Id]: sum(
if [Created At]<[START_DATE] then 1 else 0 end)}>=1
AND
{FIXED [User Id]: sum(
IF [Created At]<=[END_DATE] AND 
[Created At] >= [START_DATE] THEN 1 ELSE 0 END)}>=1
第7步
CF
的表格计算选项更改为下表(检查此项也很重要

第8步双击其他CF_max/Min字段,将其添加到
测量值

步骤9如前所述,更改这四个字段中每个字段的表格计算选项(即
CF
as
特定维度的嵌套计算
在每个用户id处重新启动)。并将CF_Max的嵌套计算(视情况而定)下表

注意关于用户id的具体问题
86886
(如果我将PUL修改后的条件删除为
TRUE
,我将获得与所需相同的视图)。请看一看


一个小建议,你可以发布一个Tableau公共工作簿的链接,以便不知道这一点的专家可以提出更好的新解决方案。因此,基本上我可以确定的问题是(I)天(createdAt),而不是确切的日期和谨慎,(ii)CF中的表格计算选项和(iii)表计算选项在所有四个字段的嵌套计算中,您必须修复聚合字段和CF。我认为您对PUL的计算是错误的,因为当用户在日期范围内(在开始日期和结束日期之间)进行超过1次的事务时,它将不在列表中,而应该是,因为只要用户进行的交易超过1笔,并且在日期范围内至少有1笔交易,它就应该在PUL列表上,而且PUL用户的每笔交易之间没有减去不同的日期,因为它将看到范围内第一笔交易之前的最后一笔交易(如果有),但是如果没有,并且是第一笔交易,那么差异日应该是0。这就是为什么你建议我在日期范围内进行如下计算:
lookup(min([Created At]),0>=[START_date]和lookup(min([Created At]),0我认为如果在日期范围内的第一个事务是该用户的第一个事务,那么它可以是
NULL
,因此这意味着之前没有事务(看看我的预期结果).
0
diff-day发生在同一用户id中的两个或多个事务在同一天进行时,因此它可以是
0
diff-day的值,就像预期的结果一样。我认为您可能需要这样的PUL。无论如何,您可以根据场景要求进行PUL计算。不过,如果您将计算应用为请仔细记下每一步。
+---------+-----------------------+-------------+
| user_Id |    dayOfCreatedAt     | CF diff day |
+---------+-----------------------+-------------+
|   86886 | 1/25/2020 11:25:28 AM |             |
|         | 1/25/2020 11:39:42 AM |          0  |
+---------+-----------------------+-------------+
{Fixed [User Id]: sum(
if [Created At]<[START_DATE] then 1 else 0 end)}>=1
AND
{FIXED [User Id]: sum(
IF [Created At]<=[END_DATE] AND 
[Created At] >= [START_DATE] THEN 1 ELSE 0 END)}>=1
DATEDIFF('day', LOOKUP(MIN([Created At]),-1), MIN([Created At]))