【问题标题】:Bring all itens from key using data filter使用数据过滤器从键中获取所有项目
【发布时间】:2021-11-19 23:13:42
【问题描述】:

我有一个包含相同键但日期不同的文档列表,我正在尝试使用数据过滤器从键中提取所有元素,我正在使用 Tableau Desktop。

比如我的表是:

Document Date Key
A 01/01/2021 X
B 01/02/2021 X
C 01/03/2021 X
D 01/04/2021 X
E 01/05/2021 X
F 01/06/2021 X
G 01/07/2021 Y
H 01/08/2021 Y

如果我过滤 2021 年 2 月,因为我的密钥 X 的日期是 01/02/2021,结果应该是:

Document Date Key
A 01/01/2021 X
B 01/02/2021 X
C 01/03/2021 X
D 01/04/2021 X
E 01/05/2021 X
F 01/06/2021 X

否则,如果我过滤日期 8 月/2021 年,它应该是:

Document Date Key
G 01/07/2021 Y
H 01/08/2021 Y

我尝试了什么:我创建了一个日期参数“插入日期”来插入单个日期,并使用 FIXED 创建了一个计算字段“选择日期”,如下面的代码:

{ FIXED [Key] : MAX([Date] = [Insert Date])}

我一天就搞定了,但我需要用一整个月。

【问题讨论】:

  • 因此创建一个计算公式,返回符合日期条件的文档的键。像IF document date = 01/02/2021, THEN key ELSE 0 END 这样的东西会给你所有有日期的文件的钥匙。您可以将过滤器应用于该计算,以便仅获取所需键的数据。注意:如果 0 有可能是有效的键值,您可能需要将 ELSE 0 更改为不同的值。另请注意,您可以使用日期参数,因此它不是公式中的静态值
  • 对不起@devlin carnate,我忘了说我是用上面的方法完成的
  • 那么然后使用计算公式来检查日期是否在所需月份而不是确切日期内......您仍然可以使用我建议的逻辑。
  • 感谢您的帮助!

标签: sql tableau-api tableau-desktop


【解决方案1】:

听起来您想首先识别在所选日期范围内至少出现一次的键集,然后包括已识别键的所有记录,无论每条记录的日期如何。

如果是这样,您不想根据日期过滤记录,但您确实希望用户指定日期(或日期范围)。因此,不要对日期使用过滤器控件,而是使用参数 - 允许用户选择您想要的月份中的一天,或者使用两个参数来选择范围的开始和结束。

然后为过滤器定义一个聚合计算或一个集合,以确定一个键是否出现在建议的时间范围内。一个名为 KEY_OF_INTERST 基于 Key 字段 的集合,由类似于以下的条件定义应该可以工作

MAX([Date] >= [START DATE PARAM] and [Date] <= [END DATE PARAM])

如果至少有一条记录在指定的日期范围内,则该表达式为 True,因此该集合将准确包含在该时间范围内至少具有一条文档记录的键。

然后只需使用集合过滤到有趣的键

【讨论】:

  • 这成功了!谢谢!
猜你喜欢
  • 2018-11-06
  • 2015-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-21
  • 1970-01-01
相关资源
最近更新 更多