如何修复检查订单日期的计算字段?
How to fix a calculated field that checks for date in a order?
数据结构类似于此,其中访问的州遵循以下顺序:夏威夷 -> 加利福尼亚 -> 德克萨斯 -> 纽约。
| 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 中所有其他地方的人的日期。
在这种情况下,这将是卡尔,因为他去过夏威夷、加利福尼亚和德克萨斯,但还没有去过纽约。
Alice 不会出现,因为她已经访问过纽约,Bobby 应该不会出现,因为他还没有去过德克萨斯州
我尝试制作一个计算字段并将其拖到过滤器中。
IF (ISNULL([Date]) AND [State] = "New York") AND
(NOT ISNULL([Date]) AND
([State] = "Hawaii" OR
[State] = "California" OR
[State] = "Texas"))
THEN
[Date]
END
我希望输出计算字段 return 我的以下 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")
或者,您可以根据名称字段创建一个集合,其中包含访问过您想要的州的人员 - 使用上述条件中的前 3 行。另一组也基于 Name 字段,其中包含访问过您不想要的州的人员。然后制作一个组合集,其中第一组中的人减去第二组中的人。
然后您可以根据需要在过滤器、计算字段和货架上使用集合。
顺便说一句,如果任何数据记录都满足,则 max([条件]) 为真,因为 True 被视为大于 False。 min([condition]) 为真当且仅当所有数据记录满足[condition]
数据结构类似于此,其中访问的州遵循以下顺序:夏威夷 -> 加利福尼亚 -> 德克萨斯 -> 纽约。
| 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 中所有其他地方的人的日期。
在这种情况下,这将是卡尔,因为他去过夏威夷、加利福尼亚和德克萨斯,但还没有去过纽约。
Alice 不会出现,因为她已经访问过纽约,Bobby 应该不会出现,因为他还没有去过德克萨斯州
我尝试制作一个计算字段并将其拖到过滤器中。
IF (ISNULL([Date]) AND [State] = "New York") AND
(NOT ISNULL([Date]) AND
([State] = "Hawaii" OR
[State] = "California" OR
[State] = "Texas"))
THEN
[Date]
END
我希望输出计算字段 return 我的以下 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")
或者,您可以根据名称字段创建一个集合,其中包含访问过您想要的州的人员 - 使用上述条件中的前 3 行。另一组也基于 Name 字段,其中包含访问过您不想要的州的人员。然后制作一个组合集,其中第一组中的人减去第二组中的人。
然后您可以根据需要在过滤器、计算字段和货架上使用集合。
顺便说一句,如果任何数据记录都满足,则 max([条件]) 为真,因为 True 被视为大于 False。 min([condition]) 为真当且仅当所有数据记录满足[condition]