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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
PBNikr
Helper I
Helper I

Sum of last n days in DAX (measure)

Hey!

 

I am new to Power BI and struggling to get this DAX code to show me the correct values. I would like to view the following as aggregated numbers (separate cards). Note that I am using a live connection to a cube:

 

- Users from start

- Users last 30 days

- Users last 7 days

- Users previous day

 

The code that I have for Users from start is the following:

 

Users from start = 
    CALCULATE (
        'Users'[Amount];
        ALL('Date'[Date]))

 

I have tried to retrieve the users from the last 30 days, but I'm pretty sure there is a better way of doing this:

 

Users 30 days = 
CALCULATE (
    SUM ( 'Users'[AmountUsers] );
    FILTER (
        ALL ( 'Date'[Date] );
        'Date'[Date]
            >= MAX (  'Date'[Date] ) - 30
            &&  'Date'[Date] <= MAX (  'Date'[Date] )
    )
)

Any idea on how I can retrieve the correct data for the different n-days with a good DAX code? 

 

Also:

Something I noticed is that when I use the SUM() function I can't use the same fields in the calculation that are in the Users table. It looks like it can only handle hidden values. Any explanation as to why this is?

 

Thanks!

 

1 ACCEPTED SOLUTION

@Greg_Deckler Your right, thanks! This worked for me:

 

Users 30 days = 
CALCULATE (
    SUM ( 'Users'[AmountUsers] );
    FILTER (
        ALL ( 'Date'[Date] );
        'Date'[Date]
            > TODAY() - 30
    )

 

I couldn't figure out why I was receiving blank values but it looks like the most recent data hasn't been loaded into the test cube. Problem solved!

View solution in original post

2 REPLIES 2
Greg_Deckler
Super User
Super User

Actually, I don't think your DAX code is half-bad considering you are connected to live to a cube. I'm not sure why you have that && clause in there as I can't think of under what circumstance would ever have a date in your cube that would somehow be greater than the max date in the cube, so it's kind of unnecessary. You could also potentially use TODAY() - 30 instead of MAX() - 30 but overall you have the right idea. 


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

@Greg_Deckler Your right, thanks! This worked for me:

 

Users 30 days = 
CALCULATE (
    SUM ( 'Users'[AmountUsers] );
    FILTER (
        ALL ( 'Date'[Date] );
        'Date'[Date]
            > TODAY() - 30
    )

 

I couldn't figure out why I was receiving blank values but it looks like the most recent data hasn't been loaded into the test cube. Problem solved!

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.