Power BI DAX MONTH 函數:提取日期中的月份數字完整指南

Power BI DAX MONTH 函數:提取日期中的月份數字完整指南

📅 發布日期:2026-09-20 🏷️ 分類:日期與時間函數 DAX 函數
💡 函數速查卡
函數名稱 MONTH
所屬類別 日期與時間函數 (Date and Time functions)
傳回類型 整數 (Integer),範圍為 1 到 12
常用頻率 ★★★★★

在 Power BI / Analysis Services 的 DAX 數據建模中,MONTH 函數用於從指定的日期中**提取月份**,傳回代表該月份的整數數字(1 到 12)。此函數常用於日期維度表建置、季節性趨勢分析、月度數據分組,以及作為矩陣與圖表中的排序依據欄位。

一、 基本語法與參數

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

MONTH(<datetime>)
參數 說明 預設值 / 必填
datetime 包含要提取月份之日期的 datetime 值。可以是日期資料行、傳回日期的運算式,或合法的日期文字。 必填

二、 核心功能說明

MONTH 函數接收一個日期值,並將其解析為 1(一月)到 12(十二月)之間的整數數字。

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

  • 月份排序欄位:為「一月、二月...」或「Jan, Feb...」等文字格式欄位設定「依據欄位排序(Sort by Column)」,確保視覺化圖表中的月份能按 chronological 順序排列。
  • 日期維度擴充:在日期表(Date Table)中快速建立月份數字欄位,以便建立多層級的日期階層(Hierarchy)。
  • 季節與季度計算:結合 IFSWITCH 函數,根據月份劃分季度或財政年度(Fiscal Year)。

三、 實用 DAX 範例

範例 1:基本月份提取與字串解析

直接從日期文字或指定欄位中提取月份數字:

// 傳回 9
MonthNumber1 = MONTH(DATE(2026, 9, 20))

// 從 Sales 資料表的 OrderDate 欄位取得月份數字
OrderMonthNumber = MONTH('Sales'[OrderDate])

範例 2:自訂財政年度 (Fiscal Year) 劃分

若企業的財政年度從 7 月開始,可利用 MONTH 計算財政月份:

// 計算財政月份(假設 7 月為 FY M1)
FiscalMonth = 
VAR CalendarMonth = MONTH('Date'[Date])
RETURN
    IF(
        CalendarMonth >= 7,
        CalendarMonth - 6,
        CalendarMonth + 6
    )

範例 3:動態防錯與空值處理

搭配 ISBLANK 檢查日期欄位是否為空,避免產生預期外的預設結果:

// 依據 ShipDate 欄位安全提取月份
SafeShipMonth = 
IF(
    NOT ISBLANK('Orders'[ShipDate]),
    MONTH('Orders'[ShipDate]),
    BLANK()
)

四、 常見陷阱與注意事項

⚠️ 注意事項 1:BLANK() 與空值的處理行為
當傳入 MONTH(BLANK()) 時,DAX 會將 BLANK() 自動隱式轉換為日期起點(1899-12-30),進而傳回 12。建議事先檢查是否為空白日期值。
⚠️ 注意事項 2:地區性與字串日期格式陷阱
若直接傳入字串作為參數(例如 MONTH("03/04/2026")),解析結果會受模型區域性 (Locale) 影響(例如美式 MM/DD 與英式 DD/MM 之差別)。建議使用標準日期欄位或 DATE 函數產生日期參數。

五、 相關函數推薦

  • YEAR:從指定的日期中提取年份數字(如 2026)。
  • DAY:從指定的日期中提取日數字(1 到 31)。
  • FORMAT:將日期格式化為特定的文字格式,例如 "mmm" (Jan) 或 "mmmm" (January)。
  • EOMONTH:傳回指定月份之前或之後數個月最後一天的日期。

六、 官方文件連結

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

留言

相關文章 / 薪資情報

文章載入中...

你可能有興趣

精選文章 / 推薦情報

文章載入中...