The Lag function accesses data in preceding rows in the same result set, without having to join the table to itself. It references a column and returns its values in the offset position, shifting the output down by a fixed number of rows.

The Lag function typically shifts values down, while the Lead function shifts values up.


Lag(value, offset, default)

These are the function arguments:

The column of values that the function shifts
The number of rows that the output shifts
This number must be constant (the same) for all rows
Must be an integer greater than 0
Default, if omitted, is 1
The value to return in the row(s) at the end of the table, which don't have a valid offset index
Default, if omitted, is Null


Lag(\[Year of Date\]) Lag(\[Year of Date\],2)

In these examples, column Lag shows the offset lag is the default 1 row and the default is null, while column Lag 2 shows the offset lag is 2 rows and the default is null.

Default options for the Lag function

Lag(\[Attendance\], 1)

A table lists the total attendance for each game of an MLB team's 2021 season. You can use the Lag function to compare this value with the number of attendees recorded for the previous game.

The formula references the Attendance column and shifts its values down one row. The resulting output in each row of the Previous Game column indicates the number of people who attended the game that occurred immediately before the one referenced in the Game Key column.

Related resources