tableau-api - 如何修复在订单中检查日期的计算字段?
问题描述
数据结构类似于以下状态,访问状态遵循以下顺序:夏威夷 -> 加利福尼亚 -> 德克萨斯 -> 纽约。
| Name | State | Date |
|:-----------|------------:|:------------:|
| Alice | Hawaii| 1/1/2019 |
| Alice | California| 1/3/2019 |
| Alice | Texas| 1/5/2019 |
| Alice | New York| 1/7/2019 |
| Bobby | Hawaii| 3/20/2019 |
| Bobby | California| 3/23/2019 |
| Bobby | Texas| |
| Bobby | New York| |
| Carl | Hawaii| 2/10/2019 |
| Carl | California| 2/12/2019 |
| Carl | Texas| 2/12/2019 |
| Carl | New York| |
我只想为那些还没有去过纽约但参观过 Tableau 中所有其他地方的人显示日期。
在这种情况下,这将是 Carl,因为他访问了夏威夷、加利福尼亚和德克萨斯,但还没有访问纽约。
爱丽丝不会出现,因为她已经访问过纽约,鲍比不应该出现,因为他还没有去过德克萨斯
我尝试制作一个计算字段并将其拖动以进行过滤。
IF (ISNULL([Date]) AND [State] = "New York") AND
(NOT ISNULL([Date]) AND
([State] = "Hawaii" OR
[State] = "California" OR
[State] = "Texas"))
THEN
[Date]
END
我希望输出计算字段返回以下 DATE 列:
| Name | State | Date |
|:-----------|------------:|:------------:|
| Alice | Hawaii| |
| Alice | California| |
| Alice | Texas| |
| Alice | New York| |
| Bobby | Hawaii| |
| Bobby | California| |
| Bobby | Texas| |
| Bobby | New York| |
| Carl | Hawaii| 2/10/2019 |
| Carl | California| 2/12/2019 |
| Carl | Texas| 2/12/2019 |
| Carl | New York| |
但我得到的一切都是空的,所以我的逻辑有些错误,但我不知道是什么。
解决方案
将名称放在过滤器架子上。选择全部使用并切换到条件选项卡。为条件输入以下公式。
max([State] = "Hawaii") and
max([State] = "California") and
max([State] = "Texas") and
not max([State] = "New York")
或者,您可以基于 Name 字段创建一个集合,其中包含访问过您想要的州的人员 - 使用上述条件中的前 3 行。另一组也基于 Name 字段,其中包含访问过您不想要的州的人。然后制作一个组合,其中第一组的人减去第二组的人。
然后,您可以根据需要在过滤器、计算字段和货架上使用集合。
顺便说一句,如果任何数据记录都满足,则 max([condition]) 为真,因为 True 被视为大于 False。如果所有数据记录都满足 [条件],则 min([条件]) 为真
推荐阅读
- java - 用java中的线程替换for循环
- c# - EWS ExchangeService.GetAttachments 返回 401 Unauthorized 使用 OAuthCredentials
- openlayers - 具有多点功能的弹出窗口
- android - 更改 GridView 中每个单独元素的背景
- python - 提取和替换json数据
- javascript - 显示 vue-axios 的 post 响应消息
- assembly - 如何修复宏中的“期望指针类型”和“符号已经不同类型”
- json - 错误 com.fasterxml.jackson.databind.exc.MismatchedInputException 春季启动
- regex - 在 Python 中将希腊文件名转换为拉丁文件名
- html - 为什么 dir="rtl" 改变顺序,但只是有时?