是否有创建参数/过滤器的方法,允许您根据日期切换设定的时间段?
例如,我需要使用以下选项创建过滤器:
我只需要这些选项就可以从用户可用的过滤器中进行选择。
答案 0 :(得分:2)
这里的第一个问题是如何引用数据中的最后一个日期。简单的MAX([Order Date])
不起作用,因为它取决于过滤器和工作表布局,即它会为您提供过滤日期或多个日期,或两者兼而有之。假设您使用的是最新版本且数据源支持LOD calculations,则可以使用这些版本,例如{MAX([Order Date])}
(注意大括号)。
另一个问题是你的日期范围重叠,所以简单的IF-THEN将不起作用,因为IF-THEN每个日期只能属于一个感兴趣的范围,即它不能处理重叠。试试看效果。
因此,要解决第二个问题,您可以创建三个计算字段(每个范围一个)返回一个布尔值(您可能需要修改公式以满足您的需要):
过去7天:
[Order Date] >= {MAX([Order Date])} - 7
AND [Order Date] < {MAX([Order Date])}
上周排名第二:
[Order Date] >= DATETRUNC('week',{MAX([Order Date])},'Monday') - 7
AND [Order Date] < DATETRUNC('week',{MAX([Order Date])},'Monday')
过去28天:
[Order Date] >= {MAX([Order Date])} - 28
AND [Order Date] < {MAX([Order Date])}
这些公式将彼此独立地标记每个日期,忽略重叠。
然后您必须创建一个参数以允许用户指定要显示的范围。该参数是3个字符串值的列表,表示范围选择。我将此参数命名为“Show Days&#39;。
”最后,创建将放置在过滤器上的计算字段:
([Is last 7 days] AND [Show Days] = 'last 7 days')
OR
([Is 2nd last week] AND [Show Days] = '2nd last week')
OR
([Is last 28 days] AND [Show Days] = 'last 28 days')
将其放在滤镜架上,选择&#39; True&#39;,显示参数控制并选择所需的值。