为什么我的计算不能应用于我的过滤器画面
why my calculated cant be applied in my filters tableau
这是我的画面工作簿
所以我想为每个用户计算每笔交易之间的不同天数,这种情况下的用户在过滤器 PUL 中:此计算为真
{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
这意味着在最后一个范围之前有超过1笔交易并且至少在该日期范围内进行过1笔交易的用户在列表中。
所以之后我用这个公式 [CF]
使计算字段计算天数不同
DATEDIFF('day',LOOKUP(MIN([Created At]),-1), MIN([Created At]))
我还制作了过滤器日期范围
lookup(min(([Created At])),0) >= [START_DATE] and
lookup(min(([Created At])),0) <= [END_DATE]
因此不仅计算所选用户在日期范围内的时间差,而且每个用户还计算日期范围之前最后一次交易的不同天数(如果有)
这是结果(请看user_id86886)
我不明白为什么 user_id 86886 因为我的实验只有 1 个交易而不是我已经做了过滤器只接受交易超过 1 个的用户,在我检查之后,user_id 86886 人每天进行超过 1 笔交易。这是截图
我的问题是
- 为什么画面不能像这样显示同一天(但不同时间)的所有交易
以及如何将其可视化以显示 2 条同一天但不同时间的记录。
- 还有为什么如果同一天的交易计数时间与 NULL 不同,而不是它应该是 0,因为没有时间不同
预期结果(让我们以user_id 86886为例)
+---------+-----------------------+-------------+
| user_Id | dayOfCreatedAt | CF diff day |
+---------+-----------------------+-------------+
| 86886 | 1/25/2020 11:25:28 AM | |
| | 1/25/2020 11:39:42 AM | 0 |
+---------+-----------------------+-------------+
说明:CF diff day的第一个变成NULL因为是这个用户的第一笔交易,之前用户没有再做交易,第二个是“0”因为没有一天不同,不同仅以小时为单位,但尽管是同一天,所以不会有不同的一天,因此计数为 0
根据@Anil 的建议,这是我的 link 工作簿画面 https://public.tableau.com/profile/fachry.dzaky#!/vizhome/simulation_data/Sheet14
我认为您的 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
因为,如果您想要获得非空差异,则必须在 [start_date]
之前至少有一笔交易。 请检查。
现在请按照以下步骤操作(请小心)
步骤 1 将 user id
和 created at
拖到 行架 。
Step-2 将 created at
更改为 确切日期 ,然后更改为 discreet(两者都很重要,您查看显示您没有将其显示为确切日期,而是显示为 created_at 的日期 )
步骤 3:设置日期参数
第 4 步 将所有三个所需字段拖到过滤器架上。
步骤*5:将PUL
添加到上下文(又是重要的一步)
Step-6 双击 CF
字段(检查其计算方式
DATEDIFF('day', LOOKUP(MIN([Created At]),-1), MIN([Created At]))
Step-7将CF
的table计算选项改成table向下(勾选这个也很重要)
Step-8 双击其他 CF_max/Min 字段将它们添加到 measure values
Step-9 更改 table 这四个字段中每个字段的计算选项,如前所述(即 CF
的嵌套计算为 specific dimensions
每隔 user_id) 重新启动一次。并嵌套计算CF_Max(视情况而定)到table下。
NOte 关于 user_id 86886
的具体问题(如果我将删除 PUL 修改条件作为 TRUE
我得到相同的结果根据需要查看)。请看一下
这是我的画面工作簿
所以我想为每个用户计算每笔交易之间的不同天数,这种情况下的用户在过滤器 PUL 中:此计算为真
{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
这意味着在最后一个范围之前有超过1笔交易并且至少在该日期范围内进行过1笔交易的用户在列表中。
所以之后我用这个公式 [CF]
使计算字段计算天数不同DATEDIFF('day',LOOKUP(MIN([Created At]),-1), MIN([Created At]))
我还制作了过滤器日期范围
lookup(min(([Created At])),0) >= [START_DATE] and
lookup(min(([Created At])),0) <= [END_DATE]
因此不仅计算所选用户在日期范围内的时间差,而且每个用户还计算日期范围之前最后一次交易的不同天数(如果有)
这是结果(请看user_id86886)
我不明白为什么 user_id 86886 因为我的实验只有 1 个交易而不是我已经做了过滤器只接受交易超过 1 个的用户,在我检查之后,user_id 86886 人每天进行超过 1 笔交易。这是截图
我的问题是
- 为什么画面不能像这样显示同一天(但不同时间)的所有交易
以及如何将其可视化以显示 2 条同一天但不同时间的记录。
- 还有为什么如果同一天的交易计数时间与 NULL 不同,而不是它应该是 0,因为没有时间不同
预期结果(让我们以user_id 86886为例)
+---------+-----------------------+-------------+
| user_Id | dayOfCreatedAt | CF diff day |
+---------+-----------------------+-------------+
| 86886 | 1/25/2020 11:25:28 AM | |
| | 1/25/2020 11:39:42 AM | 0 |
+---------+-----------------------+-------------+
说明:CF diff day的第一个变成NULL因为是这个用户的第一笔交易,之前用户没有再做交易,第二个是“0”因为没有一天不同,不同仅以小时为单位,但尽管是同一天,所以不会有不同的一天,因此计数为 0
根据@Anil 的建议,这是我的 link 工作簿画面 https://public.tableau.com/profile/fachry.dzaky#!/vizhome/simulation_data/Sheet14
我认为您的 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
因为,如果您想要获得非空差异,则必须在 [start_date]
之前至少有一笔交易。 请检查。
现在请按照以下步骤操作(请小心)
步骤 1 将 user id
和 created at
拖到 行架 。
Step-2 将 created at
更改为 确切日期 ,然后更改为 discreet(两者都很重要,您查看显示您没有将其显示为确切日期,而是显示为 created_at 的日期 )
步骤 3:设置日期参数
第 4 步 将所有三个所需字段拖到过滤器架上。
步骤*5:将PUL
添加到上下文(又是重要的一步)
Step-6 双击 CF
字段(检查其计算方式
DATEDIFF('day', LOOKUP(MIN([Created At]),-1), MIN([Created At]))
Step-7将CF
的table计算选项改成table向下(勾选这个也很重要)
Step-8 双击其他 CF_max/Min 字段将它们添加到 measure values
Step-9 更改 table 这四个字段中每个字段的计算选项,如前所述(即 CF
的嵌套计算为 specific dimensions
每隔 user_id) 重新启动一次。并嵌套计算CF_Max(视情况而定)到table下。
NOte 关于 user_id 86886
的具体问题(如果我将删除 PUL 修改条件作为 TRUE
我得到相同的结果根据需要查看)。请看一下