在不实际过滤基础数据的情况下过滤视图,同时在 Tableau 中使用 table 计算

Filtering the view without actually filtering the underlying data, while using table calculations in Tableau

我的画面中有 2 列,user_idcreatedAtuser_id作为用户的id,createdAt作为交易发生的日期。

这是我的画面

我以这个 user_id = 60 为例,所以我有 2 个过滤器,用于条件用户 (PUL : true)

和 date_range :正确,因此数据将出现在日期范围

在我的画面上,我使用此查询创建了名为 datediff 的计算字段

DATEDIFF('day',LOOKUP(MIN([Created At]),-1), MIN([Created At]))

所以这个计算字段有一个函数来计算每个用户在日期范围内交易之间的不同日期(在这种情况下,我选择范围在“2020-01-01”到“2020-01-31”之间)

如您所见,在 user_id 60 的日期范围内有 2 笔交易,分别是 1 月 10 日和 1 月 31 日,因此,这两个日期之间相差 21 天。但是如果我打开 date_range 过滤器,你可以看到 user_id = 60 的所有交易日期,你可以在这个

上看到

据我们所知,在日期范围之前,user_id = 60 人在 2019 年 12 月 24 日进行了交易,这意味着落后 17 天。

我的问题是,如何在 date_range 的第一天交易之间设置时间差,并将其与日期范围之前的最后一笔交易进行比较,所以当我放置 date_range 过滤器时,在 2020 年 1 月 10 日(对于 user_id = 60),它还在 2020 年 1 月 10 日这一列出现了 17 天的时差(因为它与该日期范围之前的最后一笔交易进行比较,即 2019 年 12 月 24 日)。

我应该编辑或添加哪一部分?

我已经用我以前的样本数据解决了你的另一个问题。

使用的示例数据

创建计算字段 date for filter as

lookup(min(([Trans Date])),0)

Right-click 测量并点击 convert to continuous

改为使用此字段作为过滤器,您会得到想要的。

两张截图

和筛选视图

编辑:由于您使用了参数,因此请在 date range 字段中使用此计算

lookup(min(([Trans Date])),0) >= [Start date] and 
lookup(min(([Trans Date])),0) <= [End date]

查看此屏幕截图

不用说trans date就是你的created at字段。