我在Tableau中有一个容量仪表板,供用户选择开始日期和将新项目添加到堆叠条形图中所需的日期。目前,由于这部分IF公式,我得到了错误的计算
AND [日期] <= [开始日期] +([需要的天数]
,因为该部分包括周末。我的数据源中没有周末,我的观点和日期是离散的。是否有一种函数或方法可以使IF公式的特定部分忽略周末?
谢谢您的帮助!
答案 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])
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]
让我知道是否需要更多帮助。 祝你有美好的一天:)