Power BI treats a Month column like any other piece of text and sorts it alphabetically, which is why your axis reads Apr, Aug, Dec instead of Jan, Feb, Mar. The fix is to give every month name a number behind the scenes and tell Power BI to sort the name by that number. One small model change repairs the axis on every chart, slicer, and matrix that uses the column.
Why the months land in the wrong order
In a SharePoint list, Month is typically a calculated field that pulls a name such as "Jan" or "Feb" out of the Date column. When that value arrives in Power BI, it is plain text. Power BI has no built-in knowledge that "Feb" follows "Jan"; it applies its default sort order for text, which is alphabetical. Excel gets away with the same chart because it recognizes the values as parts of dates and applies calendar logic automatically — Power BI makes no such assumption.
The same problem affects weekday names (Mon, Tue, Wed...), clothing sizes, and any other text column whose natural order is not A-to-Z.
Step 1: Add a month number column
Open the model in Power BI Desktop (model edits are easiest there), switch to Table view, select the table that holds Date, and choose New column under Table tools. Enter:
Month Number = MONTH('Incidents'[Date])
Replace Incidents with your table name. The DAX MONTH function returns 1 for January through 12 for December. If you prefer to fix the data upstream, add the equivalent column in Power Query instead: Add Column → Date → Month → Month of Year, which generates Date.Month([Date]). Either way, confirm the new column shows Jan = 1 through Dec = 12.
Step 2: Sort the month name by the number
This is the step people miss. Still in Table view, click the Month column itself — the text column used on the chart axis, not the new number. Then select Sort by column and pick Month Number. Power BI stores this as a model-level rule: from now on, whenever the Month column appears anywhere — a line chart axis, a slicer, a matrix header — it is ordered Jan through Dec.
One rule makes this work: the mapping must be one-to-one. Every month name must correspond to exactly one number. Before applying the sort key, clean up the Month values:
- Standardize casing — "Jan" and "jan" are two different values as far as Power BI is concerned.
- Remove blanks and stray text that slipped in from the source list.
- Keep exactly one number per name; duplicates break the sort relationship.
Alternative: Sort the visual when you can't edit the model
If you are working directly in the Power BI Service and lack permission to change the data model, you can still fix a single chart. Drag Month Number into the Tooltips bucket of the visual, then open the chart's ... menu, choose Sort by, and select the month number field with Sort ascending. The sort menu only offers fields that are part of the visual, which is why the number has to ride along in Tooltips. This works, but it is a per-visual workaround: you must repeat it on every chart, and the raw number will appear in the tooltip. The Sort by column method from Step 2 is the cleaner, permanent fix.
A sturdier setup for years of seasonal data
With sixteen years of incidents, a dedicated month or date table pays off quickly. Build a small dimension containing Month Name, Month Number, and a Year-Month key such as FORMAT('Incidents'[Date], "YYYY-MM"), apply the same Sort by column rule to the name column, and relate the table to your incidents. You then get consistent ordering everywhere, plus two different views of the data: month-only seasonality (12 points, comparing the same month across years) and true chronological history (one point per year-month). A line chart with 192 points tells a very different story from one with 12, so keep both options available.
Frequently Asked Questions
Why does Excel sort months correctly but Power BI doesn't?
Excel recognizes date-like values and applies calendar order automatically. Power BI sees your Month column as ordinary text and falls back to alphabetical sorting until you supply a numeric sort key.
Can I fix the order without adding a column?
Not cleanly. Power BI has no built-in "month" sort for a text column. The nearest workaround is the tooltip-and-sort trick described above, which works per visual but does not fix slicers or other charts.
Why is Sort by column greyed out or ignored?
The sort key must map each month name to exactly one number. Duplicate month names, mixed casing, or blanks violate the one-to-one requirement. Standardize and deduplicate the Month values, then apply the rule again.
My data spans many years — how do I get true chronological order?
Sorting by month number always yields Jan through Dec, which is what you want for seasonality. For a running timeline, put a Year-Month value such as 2024-01, or the start-of-month date, on the axis instead; dates and zero-padded keys sort correctly on their own.
Do I have to redo this after every data refresh?
No. The Sort by column setting is saved in the model and survives refreshes and publishing. Only structural changes — recreating the Month column or renaming fields — require setting it up again.
Does this fix slicers and other visuals too?
Yes. Because the sort rule lives on the column in the model, every visual, filter dropdown, and slicer that uses Month follows the same Jan-to-Dec order automatically.