如何让参数忽略 Tableau 中的周末?
How to have a parameter ignore weekends in Tableau?
我在 Tableau 中有一个容量仪表板,专为用户设计 select 开始日期和新项目添加到堆叠条形图所需的天数。目前,由于我的 IF 公式
,我得到了错误的计算
AND [Date] <= [Start Date] + ([Days Required])
因为那部分包括周末。我的数据源、视图和日期中没有周末。是否有函数或方法可以让 IF 公式的特定部分忽略周末?
感谢您的帮助!
datename('weekday',TODAY())
可以为您提供当天的字符串名称 - 关键字是 'weekday' 而不是 'day'。您可以查看:
if datename('weekday',TODAY())='Saturday' OR datename('weekday',TODAY())='Sunday'
这是我想出的东西..
Q.Add 天开始日期并跳过周末(换句话说,只考虑工作日)。
解决方法:
通过将天数添加到 start_date 来确定 end_date
[结束日期]:
DATEADD('day',[Days],[Start Date])
我为此创建了 2 个计算字段。
1. Add_days - 当一周介于 [开始日期] 和 [结束日期] 之间时,将天添加到 [天] 字段。
[Add_days]
[Days]+DATEDIFF('week',[Start Date],[End Date])+DATEDIFF('week',[Start Date],[End Date])
- End_date_final - 获取不包括周末的最终结束日期并给出新的结束日期。
[End_date_final]
IF DATENAME('weekday',DATEADD('day',[Add_days],[Start Date]))='Saturday'
THEN
DATEADD('day',[Add_days]+2,[Start Date])
ELSEIF DATENAME('weekday',DATEADD('day',[Add_days],[Start Date]))='Sunday'
THEN
DATEADD('day',[Add_days]+1,[Start Date])
ELSE
DATEADD('day',[Add_days],[Start Date])
END
现在您可以将 IF 条件中的条件用作
AND [Date] <= [End_date_final]
如果需要更多帮助,请告诉我。
祝你有美好的一天:)
我在 Tableau 中有一个容量仪表板,专为用户设计 select 开始日期和新项目添加到堆叠条形图所需的天数。目前,由于我的 IF 公式
,我得到了错误的计算AND [Date] <= [Start Date] + ([Days Required])
因为那部分包括周末。我的数据源、视图和日期中没有周末。是否有函数或方法可以让 IF 公式的特定部分忽略周末?
感谢您的帮助!
datename('weekday',TODAY())
可以为您提供当天的字符串名称 - 关键字是 'weekday' 而不是 'day'。您可以查看:
if datename('weekday',TODAY())='Saturday' OR datename('weekday',TODAY())='Sunday'
这是我想出的东西..
Q.Add 天开始日期并跳过周末(换句话说,只考虑工作日)。
解决方法: 通过将天数添加到 start_date 来确定 end_date [结束日期]:
DATEADD('day',[Days],[Start Date])
我为此创建了 2 个计算字段。 1. Add_days - 当一周介于 [开始日期] 和 [结束日期] 之间时,将天添加到 [天] 字段。 [Add_days]
[Days]+DATEDIFF('week',[Start Date],[End Date])+DATEDIFF('week',[Start Date],[End Date])
- End_date_final - 获取不包括周末的最终结束日期并给出新的结束日期。 [End_date_final]
IF DATENAME('weekday',DATEADD('day',[Add_days],[Start Date]))='Saturday'
THEN
DATEADD('day',[Add_days]+2,[Start Date])
ELSEIF DATENAME('weekday',DATEADD('day',[Add_days],[Start Date]))='Sunday'
THEN
DATEADD('day',[Add_days]+1,[Start Date])
ELSE
DATEADD('day',[Add_days],[Start Date])
END
现在您可以将 IF 条件中的条件用作
AND [Date] <= [End_date_final]
如果需要更多帮助,请告诉我。 祝你有美好的一天:)