Tableau单参数多视图日期筛选问题:按启动日期统一过滤
我来帮你解决这个Tableau筛选器的问题!你的核心需求是用单个筛选器统一控制三个视图,只显示Launch Date之前或之后的数据,之前用「或」逻辑合并计算字段出错的原因我先给你理清楚,再给你分步的解决方案:
为什么之前的方法失效?
你之前把三个日期的判断用「或」逻辑合并,意味着只要任意一个日期符合条件(比如rep入职在Launch Date前,但用户申请在之后),这条数据就会被保留,自然会出现Launch Date前的数据,这和你要的「每个视图只显示自身日期符合条件的数据」逻辑不符。
正确解决方案(单个参数控制所有视图)
我们用一个参数来切换「之前/之后」的筛选方向,再给每个视图绑定对应的筛选计算字段,就能实现统一控制:
创建筛选方向参数
- 新建一个字符串参数,命名为
Date Filter Direction - 允许的值选择「列表」,添加两个选项:
在Launch Date之后、在Launch Date之前,默认可以选前者
- 新建一个字符串参数,命名为
为每个视图创建专属筛选计算字段
针对三个视图分别创建计算字段,让它们跟着参数的选择来判断日期条件:- 第一个视图(rep入职统计)的计算字段
Filter Rep Onboard:IF [Date Filter Direction] = "在Launch Date之后" THEN [rep_onboard_date] >= [Launch Date] ELSE [rep_onboard_date] < [Launch Date] END - 第二个视图(用户申请统计)的计算字段
Filter User Application:IF [Date Filter Direction] = "在Launch Date之后" THEN [user_application_date] >= [Launch Date] ELSE [user_application_date] < [Launch Date] END - 第三个视图(用户注册统计)的计算字段
Filter User Enrollment:IF [Date Filter Direction] = "在Launch Date之后" THEN [user_enrollment_date] >= [Launch Date] ELSE [user_enrollment_date] < [Launch Date] END
- 第一个视图(rep入职统计)的计算字段
给每个视图添加筛选器
把对应的计算字段拖到每个视图的「筛选器」面板里,都设置为True,这样只有符合参数指定条件的数据才会显示。把参数添加到仪表板
把Date Filter Direction参数拖到仪表板上,现在你只要切换这个参数的选项,三个视图就会同步更新,只显示对应时间范围的数据啦!
补充:如果需要筛选「三个日期都符合条件」的记录
如果你想要的是只有当rep入职、用户申请、用户注册三个日期都在Launch Date之前/之后才显示数据(不过看你的视图是分别统计独立的计数,应该不是这个需求,但还是提一下),可以创建一个全局计算字段:
IF [Date Filter Direction] = "在Launch Date之后" THEN [rep_onboard_date] >= [Launch Date] AND [user_application_date] >= [Launch Date] AND [user_enrollment_date] >= [Launch Date] ELSE [rep_onboard_date] < [Launch Date] AND [user_application_date] < [Launch Date] AND [user_enrollment_date] < [Launch Date] END
然后把这个字段添加到所有三个视图的筛选器里并设为True即可。
内容的提问来源于stack exchange,提问作者user8834780
相关产品推荐
相关产品推荐

