Power BI DAX NETWORKDAYS.INTL 函數:自訂週末工作日計算完整指南

Power BI DAX NETWORKDAYS.INTL 函數:自訂週末工作日計算完整指南

📅 發布日期:2026-09-20 🏷️ 分類:日期與時間函數 DAX 函數
💡 函數速查卡
函數名稱 NETWORKDAYS.INTL
所屬類別 日期與時間函數 (Date and Time functions)
傳回類型 整數 (Integer),代表兩日期之間的實際工作天數
常用頻率 ★★★★☆

在 Power BI 的數據建模與報表開發中,NETWORKDAYS.INTL 函數是一個極為強大的工具,用於**計算兩個日期之間包含的完整工作天數**。與傳統的 NETWORKDAYS 不同,NETWORKDAYS.INTL 允許您自訂哪些天為週末(例如僅週日休息,或是排班制的特定休息日),並能排除指定的國定假日資料表,廣泛應用於 HR 考勤分析、專案時程計算(SLA)、物流運送天數估算等情境。

一、 基本語法與參數

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

NETWORKDAYS.INTL(<start_date>, <end_date>[, <weekend>][, <holidays>])
參數 說明 預設值 / 必填
start_date 計算區間的起始日期(含該日)。 必填
end_date 計算區間的結束日期(含該日)。 必填
weekend 指定哪些天為週末。可用數字代碼(如 1 代表週六週日)或長度 7 的字串(如 "0000011",1 代表非工作日,從週一開始算)。 選填(預設為 1:週六與週日)
holidays 包含需排除之國定假日或特休例假日的單欄資料表(Table reference)。 選填

二、 核心功能說明

NETWORKDAYS.INTL 能自動扣除指定區間內的週末與國定假日,為商業分析提供精確的淨工作日數計算。

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

  • 跨國與特殊工時設定:支援不同國家或產業的週末習慣(如中東地區週五週六為週末,或是餐飲服務業僅週一休息)。
  • KPI / SLA 績效衡量:精確計算工單處理時間、客戶客服回應時效(不包含非工作日)。
  • 人力資源與薪資計算:根據每個月的實際應出勤工作天數計算員工出勤率或基本薪資折算。

三、 實用 DAX 範例

範例 1:基本用法(預設週六日為週末)

計算訂單成立日與出貨日之間的工作天數:

// 建立計算行:計算處理訂單所需的標準工作天數(預設週六、週日為週末)
ShippingWorkingDays = 
NETWORKDAYS.INTL(
    'Orders'[OrderDate],
    'Orders'[ShipDate]
)

範例 2:自訂週末(例如僅週日休息,或使用 7 位元字串)

某些產業週六需要上班,僅週日為休假日。可以使用數字代碼 11,或是 7 位元字串 "0000001"(分別代表週一到週日,1 代表非工作日):

// 方法 1:使用代碼 11 代表「僅週日」為週末
WorkDaysSundayOnly = 
NETWORKDAYS.INTL(
    DATE(2026, 10, 1),
    DATE(2026, 10, 31),
    11
)

// 方法 2:使用字串 "0000011"(週一至週五工作,週六週日休息)
WorkDaysCustomString = 
NETWORKDAYS.INTL(
    DATE(2026, 10, 1),
    DATE(2026, 10, 31),
    "0000011"
)

範例 3:結合假日表(Holidays Table)進行完整扣除

扣除國定假日與特定例休日(傳入假日表中的日期欄位):

// 扣除假日表 'DimHolidays'[HolidayDate] 中列出的國定假日
NetWorkDaysWithHolidays = 
NETWORKDAYS.INTL(
    'Projects'[StartDate],
    'Projects'[EndDate],
    1,
    VALUES('DimHolidays'[HolidayDate])
)

四、 常見陷阱與注意事項

⚠️ 注意事項 1:起始日期大於結束日期的傳回值
start_date 大於 end_date 時,函數將會傳回負數或 0。若需計算絕對天數,可先透過 IF 邏輯判斷或搭配 ABS 函數處理。
⚠️ 注意事項 2:7 位元週末字串的格式要求
若使用字串代表週末(例如 "0000011"),字串長度必須剛好為 7 個字元,且僅能填入 0(工作日)與 1(非工作日)。若填入 "1111111"(全為非工作日),函數將會傳回錯誤或 0。

五、 相關函數推薦

  • NETWORKDAYS:計算兩日期的工作天數(固定預設週六、週日為週末)。
  • DATEDIFF:計算兩個日期之間的時間差距(以日、月、年等單位表示,不排除週末)。
  • DATEADD:將指定的日期間隔推算至未來或過去。

六、 官方文件連結

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

留言

相關文章 / 薪資情報

文章載入中...

你可能有興趣

精選文章 / 推薦情報

文章載入中...