Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

July 28 - August 9 | Final Round of the Power BI Dataviz World Championships. This is your chance. Learn more

Reply
jackj
Helper I
Helper I

Calculated Column for Previous Week Sales

Hi,

 

I am struggling to write dax for a calculated column, not a measure, that will provide me with the previous week's subtotal sales for a user id.  My data table is structured like this:

 

UserIDSalesWeek Ending
151/8/2022
22

1/8/2022

111/1/2022
331/1/2022
321/8/2022
121/1/2022
241/1/2022
411/8/2022
321/1/2022
211/1/2022
161/1/2022
231/8/2022

 

So, for example, in the first Row, I want to be able to show in a calculated column that UserID 1 had a total of 9 sales in the previous week (1/1/2022).  How can I accomplish this, dynamically based on the week ending listed in the table?

1 ACCEPTED SOLUTION
AUaero
Responsive Resident
Responsive Resident

In that case you could rewrite the column to act as a binary flag.

Prev Week Sales Flag = 
VAR CurID = 'table'[UserID]
VAR CurWeek = 'table'[Week Ending]
VAR PrevWeek = CurWeek - 7

VAR LastWeekSales = 
CALCULATE(
    SUM('table'[Sales]),
    FILTER(
        ALL('table'),
        'table'[UserID] = CurID &&
        'table'[Week Ending] = PrevWeek
    )
)

RETURN
SWITCH(
    TRUE(),
    LastWeekSales > 5, 1
    0
)

View solution in original post

3 REPLIES 3
AUaero
Responsive Resident
Responsive Resident

In that case you could rewrite the column to act as a binary flag.

Prev Week Sales Flag = 
VAR CurID = 'table'[UserID]
VAR CurWeek = 'table'[Week Ending]
VAR PrevWeek = CurWeek - 7

VAR LastWeekSales = 
CALCULATE(
    SUM('table'[Sales]),
    FILTER(
        ALL('table'),
        'table'[UserID] = CurID &&
        'table'[Week Ending] = PrevWeek
    )
)

RETURN
SWITCH(
    TRUE(),
    LastWeekSales > 5, 1
    0
)
AUaero
Responsive Resident
Responsive Resident

This will always provide the sum of sales for the prior week for each user ID. 

Prev Week Sales = 
VAR CurID = 'table'[UserID]
VAR CurWeek = 'table'[Week Ending]
VAR PrevWeek = CurWeek - 7

RETURN
CALCULATE(
    SUM('table'[Sales]),
    FILTER(
        ALL('table'),
        'table'[UserID] = CurID &&
        'table'[Week Ending] = PrevWeek
    )
)

 

Just curious why you can't use a measure here?

 

I'm looking to use it as a filter in another measure, at the UserID level - basically if last week's sales for that userID are >5, then don't count them.

Helpful resources

Announcements
Fabric Community Sticker Design Challenge Barcelona Carousel

Fabric Community Sticker Challenge - Barcelona 2026

If you love stickers, then you will definitely want to check out our community sticker challenge, Barcelona edition!

July Power BI Update Carousel

Power BI Monthly Update - July 2026

Check out the July 2026 Power BI update to learn about new features.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Top Solution Authors