STARTOFMONTH
Gives the column's earliest date in the month of the filter context: on business days, the month's first business day.
Group: Time intelligence. Compatible with DAX.
Syntax
STARTOFMONTH ( <dates> )
| Parameter | Type | Description |
|---|---|---|
dates | Dates | A column of dates of the model, such as Sales[Month], or the name of a calendar defined in the model. |
Returns
Table. The month's first date that the column holds, as a table of one row.
Remarks
- The month is the one of the first date in the filter context. Its first date is the first one the column has in that month: on business days, 1 August 2026 is a Saturday and the month starts on Monday 3 August.
- The table of one row can be used as a value; with no date in the context, it is blank.
- Given a column, it reads the dates visible in the current filter context; in a row context, such as
ADDCOLUMNS, the row becomes a filter first, so each row sees its own dates. - Given a calendar instead of a column, it works on the calendar's own periods (fiscal years, retail months of four or five weeks, ISO weeks). A filter on a category the calendar does not define, such as a month on a calendar of weeks, can make the call an error.
Examples
First and last business day of each month
EVALUATE
SUMMARIZECOLUMNS (
Prices[Month],
FILTER ( VALUES ( Prices[Month] ), Prices[Month] >= DATE ( 2026, 1, 1 ) && Prices[Month] <= DATE ( 2026, 4, 1 ) ),
"First business day", STARTOFMONTH ( Prices[Date] ),
"Last business day", ENDOFMONTH ( Prices[Date] )
)
ORDER BY Prices[Month]
| Prices[Month] | First business day | Last business day |
|---|---|---|
| 2026-01-01 | 2026-01-01 | 2026-01-30 |
| 2026-02-01 | 2026-02-02 | 2026-02-27 |
| 2026-03-01 | 2026-03-02 | 2026-03-31 |
| 2026-04-01 | 2026-04-01 | 2026-04-30 |
Related functions
ENDOFMONTH, STARTOFQUARTER, STARTOFYEAR, FIRSTDATE, DATESMTD.