tableau-api - 为什么我的计算不能应用于我的过滤器画面
问题描述
这是我的画面工作簿
所以我想为每个用户计算每笔交易之间的不同日期,这种情况下的用户在过滤器中 PUL: True with this calculation
{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_id 86886)
我不明白为什么 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 的建议,这是我的工作簿画面链接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在Rows Shelf处拖动user id
和。created at
步骤 2更改created at
为确切日期,然后更改为谨慎(两者都很重要,您查看显示您没有将其显示为确切日期,而是显示为created_at的日期)
Step-3 : 设置你的日期参数
第 4 步将所有三个所需字段拖到过滤器架子上。
步骤*5:添加PUL
到上下文(又是一个重要步骤)
Step-6双击该CF
字段(检查其计算为
DATEDIFF('day', LOOKUP(MIN([Created At]),-1), MIN([Created At]))
Step-7更改表格计算选项CF
as table down (检查这也很重要)
步骤 8双击其他 CF_max/Min 字段将这些添加到measure values
如前所述,步骤 9CF
在这四个字段中的每一个中更改表计算选项(即嵌套计算在specific dimensions
每个 user_id 处重新开始)。并将 CF_Max(视情况而定)的嵌套计算表下来。
注意关于您的 user_id 的具体问题86886
(如果我将删除 PUL 修改条件,因为TRUE
我得到了所需的相同视图)。请看一看
推荐阅读
- javascript - 选择选项 - 多行显示的长文本
- winapi - 如何修复 NtAllocateVirtualMemory 上的退出代码 0xc0000005 (STATUS_ACCESS_VIOLATION)?
- vue.js - Vue 3 Vuex 如何强制回调函数异步运行
- bdd - 如何使用不同的对象使 Serenity BDD 功能文件中的步骤动态化
- git - 创建一个新分支以在 git 中重新初始化整个项目
- spring - 是否可以 @CacheEvict 匹配模式的键?
- firebase - 在飞镖颤动的列表中循环
- linux - 如何将本地用户添加到我的 docker 容器中?
- javascript - 检查元素是否在 x 秒前创建
- javascript - 为什么拼接从所有变量中删除数组中的数据?