Relative Date Labels (Today, Yesterday, Last 7 Days) in Power Query M

Adds a text column that labels each date relative to today, such as Today, Yesterday or Last 7 Days.

Date & TimeIntermediaterelative datetodaylabelsdate

Power Query M code

let
    Source = YourTable,
    AddedLabel = Table.AddColumn(Source, "RelativeLabel", each
        let
            DaysAgo = Duration.Days(DateTime.Date(DateTime.LocalNow()) - [DateColumn])
        in
            if DaysAgo = 0 then "Today"
            else if DaysAgo = 1 then "Yesterday"
            else if DaysAgo <= 7 then "Last 7 Days"
            else if DaysAgo <= 30 then "Last 30 Days"
            else "Older",
        type text)
in
    AddedLabel

Generate a date table in Power Query M

Notes

Labels are recalculated every refresh relative to the refresh date, not a fixed date.

Requirements

How to use this snippet

  1. In Power BI Desktop, choose Transform data to open Power Query, then open the Advanced Editor on a query (or start from a blank query).
  2. Paste the snippet and replace the placeholder names (tables, columns, file paths) with your own. Check the requirements above first.
  3. Run it through the Power Query M Formatter to tidy the layout.

Related Power Query M snippets

More Power Query M resources

Browse all 145 snippets in the Power Query M Code Snippets, or search the library for something similar to Relative Date Labels (Today, Yesterday, Last 7 Days).