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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
SamsonAnalytics
Frequent Visitor

Average of the last 6 months

Hello everyone,

 

I have a table with employee ID, Date and Expense. I need to know who is spending money in a consecutive period of 6 months starting from TODAY (this must be updated automatically), and in average how much are they spending monthly.

 

This is my data:

cap.PNG

In this case employee 002 is in red because is the only one that had expenses for 6 consecutive months starting from today (09/27/2019). Since his average monthly expenses were:

cap2.PNG

I'm expecting an output like this

cap3.PNG

Any ideas on how to obtain it?

 

I already try this:

6MonthAvg = CALCULATE(SUM('TableName'[Expense Amount]), DATESINPERIOD('TableName'[Expense Date], DATEADD(LASTDATE('TableName'[Expense Date]),0, MONTH), -6, MONTH))/DISTINCTCOUNT('TableName'[_Month])
 
Thank you!
 

 

 

1 ACCEPTED SOLUTION
jdbuchanan71
Super User
Super User

Hello @SamsonAnalytics 

Take a look at the attached file.  I added a date table so we can use it to count months then a couple measures to get our amount.

One to calc the 6 month amount per employee and then anothe to correctly sum that amount.

 

Avg 6mo continuous = 
VAR _6MonthDates =
    DATESINPERIOD ( Dates[Date], TODAY (), -6, MONTH )
VAR _MonthsInLast6 =
    CALCULATE (
        COUNTROWS ( SUMMARIZE ( Dates, Dates[Month Year] ) ),
        Expenses,
        _6MonthDates
    )
RETURN
IF ( 
    ISINSCOPE ( Expenses[Employee ID] ) && _MonthsInLast6 = 6,
        CALCULATE ( AVERAGEX ( VALUES ( Dates[Month Year] ), [Expense] ), _6MonthDates ),
        BLANK()
)
6mo continuous totaled = SUMX ( VALUES ( Expenses[Employee ID] ), [Avg 6mo continuous] )

I could not get the first measure to sum correctly, the is why I used a 2nd one for the totaling.

6moConsecutive.jpg

My sample file is attached for you to look at.

 

View solution in original post

6 REPLIES 6
Ashish_Mathur
Super User
Super User

Hi,

You may download my PBI file from here.

Hope this helps.

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

Hi Ashish_Mathur,

 

I downloaded your attached file but I couldn't make the measure work. Not even with the example that you left me in the first tab.

 

I tried to use the same measure with my data and I couldn't either.

 

Thank you for the interest in helping me.

Hi,

Check both those tables and review the relationships.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
amitchandak
Super User
Super User

You to put condition in month count too

6MonthAvg = CALCULATE(SUM('TableName'[Expense Amount]), DATESINPERIOD('TableName'[Expense Date], DATEADD(LASTDATE('TableName'[Expense Date]),0, MONTH), -6, MONTH))
/if (CALCULATE(distinctcount('TableName'[_Month]), DATESINPERIOD('TableName'[Expense Date], DATEADD(LASTDATE('TableName'[Expense Date]),0, MONTH), -6, MONTH))
=6 ,CALCULATE(distinctcount('TableName'[_Month]), DATESINPERIOD('TableName'[Expense Date], DATEADD(LASTDATE('TableName'[Expense Date]),0, MONTH), -6, MONTH))
,blank()
)
Full Power BI Video 20 Hours YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube
jdbuchanan71
Super User
Super User

Hello @SamsonAnalytics 

Take a look at the attached file.  I added a date table so we can use it to count months then a couple measures to get our amount.

One to calc the 6 month amount per employee and then anothe to correctly sum that amount.

 

Avg 6mo continuous = 
VAR _6MonthDates =
    DATESINPERIOD ( Dates[Date], TODAY (), -6, MONTH )
VAR _MonthsInLast6 =
    CALCULATE (
        COUNTROWS ( SUMMARIZE ( Dates, Dates[Month Year] ) ),
        Expenses,
        _6MonthDates
    )
RETURN
IF ( 
    ISINSCOPE ( Expenses[Employee ID] ) && _MonthsInLast6 = 6,
        CALCULATE ( AVERAGEX ( VALUES ( Dates[Month Year] ), [Expense] ), _6MonthDates ),
        BLANK()
)
6mo continuous totaled = SUMX ( VALUES ( Expenses[Employee ID] ), [Avg 6mo continuous] )

I could not get the first measure to sum correctly, the is why I used a 2nd one for the totaling.

6moConsecutive.jpg

My sample file is attached for you to look at.

 

Hi jdbuchanan71 this worked perfectly as I needed.

 

Thank you!!

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.

Feb2025 Sticker Challenge

Join our Community Sticker Challenge 2025

If you love stickers, then you will definitely want to check out our Community Sticker Challenge!

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

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