如何让参数忽略Tableau中的周末?

时间:2019-05-06 15:42:20

标签: tableau

我在Tableau中有一个容量仪表板,供用户选择开始日期和将新项目添加到堆叠条形图中所需的日期。目前,由于这部分IF公式,我得到了错误的计算

  

AND [日期] <= [开始日期] +([需要的天数]

,因为该部分包括周末。我的数据源中没有周末,我的观点和日期是离散的。是否有一种函数或方法可以使IF公式的特定部分忽略周末?

谢谢您的帮助!

2 个答案:

答案 0 :(得分:1)

datename('weekday',TODAY())可以为您提供一天的字符串名称-关键字为“工作日”而不是“天”。您可以检查:

if datename('weekday',TODAY())='Saturday' OR datename('weekday',TODAY())='Sunday'

答案 1 :(得分:1)

这是我想到的。

问:添加开始日期的天数,然后跳过周末(换句话说,仅考虑工作日)。

解决方案: 通过将日期添加到start_date中来确定end_date [结束日期]:

DATEADD('day',[Days],[Start Date])

我为此创建了2个计算字段。 1. Add_days-当在[开始日期]和[结束日期]之间出现一周时,将天数添加到[天]字段中。 [添加天]

[Days]+DATEDIFF('week',[Start Date],[End Date])+DATEDIFF('week',[Start Date],[End Date])
  1. 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]

让我知道是否需要更多帮助。 祝你有美好的一天:)