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)。
- 季節與季度計算:結合
IF或SWITCH函數,根據月份劃分季度或財政年度(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 語法細節,可參考:
留言
張貼留言