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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

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!:
Mastering Power BI 2nd Edition

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
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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