Power BI DAX NETWORKDAYS 函數:計算兩日期間的實際工作天數完整指南

Power BI DAX NETWORKDAYS 函數:計算兩日期間的實際工作天數完整指南

📅 發布日期:2026-09-20 🏷️ 分類:日期與時間函數 DAX 函數
💡 函數速查卡
函數名稱 NETWORKDAYS
所屬類別 日期與時間函數 (Date and Time functions)
傳回類型 整數 (Integer),代表兩日期間扣除週末與國定假日後的工作天數
常用頻率 ★★★★★

在 Power BI / Analysis Services 的數據分析與專案管理中,NETWORKDAYS 函數用於計算兩個日期之間的**整數工作天數**。此函數能自動排除週末(預設為週六與週日,亦支援自訂休假模式),並可結合「國定假日清單」進行更精準的計算,廣泛應用於專案工期計算、訂單處理天數(SLA)及人力資源差勤分析。

一、 基本語法與參數

NETWORKDAYS 函數的標準 DAX 語法結構如下:

NETWORKDAYS(<start_date>, <end_date>[, <weekend>][, <holidays>])
參數 說明 預設值 / 必填
start_date 計算區間的起始日期(包含當天)。 必填
end_date 計算區間的結束日期(包含當天)。 必填
weekend 指定哪些天為週末休假日。可用數字(如 1 代表星期六/日,11 代表僅星期日)或 7 個字元的字串(如 "0000011" 代表週六、日休假)。 選填(預設為 1,即週六與週日)
holidays 包含需排除之國定假日或特別休假日期的單行資料表(Single-column table)。 選填

二、 核心功能說明

NETWORKDAYS 能簡化傳統需要繁複 DAX 篩選語法才能算出的工作天數問題。它會在指定的日期區間內,逐日檢查並自動扣除非工作日。

在 Power BI 報表建模中,常見的實務應用包括:

  • 計算客戶訂單從「下單日」到「出貨日」經歷了多少個實際工作天(SLA 分析)。
  • 計算專案任務開工至完工耗費的實際人力資源天數。
  • 靈活設定不同的產業輪班制或排班制休假模式(例如僅週日休假)。

三、 實用 DAX 範例

範例 1:計算基本工作天數(預設週六/週日為週末)

計算訂單表中的下單日期至出貨日期之間的工作天數:

// 建立計算行:計算訂單處理歷時的實際工作天數
OrderWorkingDays = 
NETWORKDAYS(
    'Orders'[OrderDate], 
    'Orders'[ShipDate]
)

範例 2:自訂休假模式與加入國定假日清單

設定休假為僅週日(代碼 11),並扣除 Holidays[Date] 資料行中的國定假日:

// 建立計算行:僅週日休假,且扣除國定假日資料表中的日期
ProjectWorkingDays = 
NETWORKDAYS(
    'Projects'[StartDate], 
    'Projects'[EndDate], 
    11, 
    VALUES('Holidays'[Date])
)

範例 3:動態防錯與日期順序處理

若起始日期晚於結束日期,NETWORKDAYS 會傳回負數。可透過 IF 與邏輯控制傳回安全結果:

// 建立度量值:確保起始日期大於結束日期時不產生非預期錯誤
SafeWorkingDays = 
VAR StartD = MIN('Sales'[OrderDate])
VAR EndD = MAX('Sales'[DeliveryDate])
RETURN
    IF(
        NOT ISBLANK(StartD) && NOT ISBLANK(EndD),
        NETWORKDAYS(StartD, EndD, 1, VALUES('Holidays'[Date])),
        BLANK()
    )

四、 常見陷阱與注意事項

⚠️ 注意事項 1:算頭也算尾(兩端均包含)
NETWORKDAYS 是閉區間計算。若起始日期與結束日期均為同一天,且該天為工作日,計算結果將傳回 1,而非 0。
⚠️ 注意事項 2:holidays 參數必須是單行資料表
傳入的 holidays 參數必須是僅包含一欄日期的資料表。若直接傳入整張未處理的資料表會發生型別錯誤,建議使用 VALUES('Holidays'[Date]) 或字面陣列(如 {DATE(2026,1,1)})。

五、 相關函數推薦

  • DATEDIFF:計算兩日期間的總天數、月數或年數(不排除週末與假日)。
  • DATEADD:將日期平移指定的區間單位。
  • WEEKDAY:傳回代表特定日期是星期幾的數字。

六、 官方文件連結

想進一步瞭解微軟官方說明與 DAX 語法細節,可參考:

留言

相關文章 / 薪資情報

文章載入中...

你可能有興趣

精選文章 / 推薦情報

文章載入中...