2015-05-14 81 views
2

我正在尋找一個公式來計算兩個日期之間在電力調整中的平日/營業日數。計算電力樞紐中兩個日期之間的營業日數

我使用下面的查詢

DATEDIFF(dd, Date1, GETDATE()) - (DATEDIFF(wk, Date1, GETDATE()) * 2) - 
      CASE WHEN DATEPART(dw, Date1) = 1 THEN 1 ELSE 0 END + 
      CASE WHEN DATEPART(dw, GETDATE()) = 1 THEN 1 ELSE 0 END END 

我在PowerPivot尋找一個類似的查詢做在T-SQL一樣。

+0

按標準的Excel,平日可使用 「平日()」 函數來識別。至於公衆假期,那麼你需要一些你所在地區的清單。如果Weekday()返回2-6並且該日不是公共假期,則可以將它們組合成「if」語句。這可以在FILTER表達式中使用,以將日期表減少爲只有True的表格。讓我知道,如果這是有道理的,我會盡力寫出它作爲一個完整的答案。 – Soulus101

+0

我應該補充一點,我的Powerpivot是舊版本(被詛咒的企業IT),所以可能會有一些時間智能功能可用於您,但這些功能對我而言並非如此。但上述原則仍然適用。 – Soulus101

回答

2

首先,您需要創建一個日期表。這會幫助你解決這個問題,並且可以讓你使用很多其他的Time Intelligence Functions。您可以手動或使用

CalendarDate | Month Key | Month Name | Quarter Name | Year 
----------------------------------------------------------- 
1/1/2014  | 1.00  | Jan  | Q1   | 2014 
1/2/2014  | 1.00  | Jan  | Q1   | 2014 
... 
2/1/2014  | 2.00  | Feb  | Q1   | 2014 
.... 
8/1/2014  | 8.00  | Aug  | Q3   | 2014 
.. 
9/2/2014  | 9.00  | Sep  | Q3   | 2014 
.. 
12/16/2014 | 12.00  | Dec  | Q4   | 2014 

在你Dates Table可以創建一個計算列,決定是否每一天是工作日創建此。通話列IsWeekday

=SWITCH(WEEKDAY([CalendarDate]),7,FALSE(),1,FALSE(),TRUE()) 

SWITCH語句將返回假,如果一週中的一天是7日或一週的第一天(週六/週日)

現在,在其中包含您的交易,你可以將表創建一個名爲Number Of Weekdays的新計算列。這將是

=CALCULATE(COUNTA(Dates[IsWeekday]), 
      DATESBETWEEN(Dates[CalendarDate], 
         TransactionTable[date1], 
         TransactionTable[date2] 
         ) 
     ) 

這裏有兩篇文章,我推薦與這種方法相關。

相關問題