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
momihaila
Frequent Visitor

Rolling calculation for filtered data

Hi all,

 

I am fairly new to Power BI and I want to build a NPS dashboard. I have the detailed data at questionnaire level and I am struggling to get rolling kpi's.

 

I managed to get 2Months rolling count of number of respondents with this:

aa rol1 = CALCULATE(COUNT(CallCenter_Interact[INT ID]), DATESINPERIOD(CallCenter_Interact[End of Month]

 

However, if I want to calculated the 2M rolling number of Promoters the formula only returns the total for each month :

aa prom roll1 = CALCULATE(COUNT(CallCenter_Interact[INT ID]),FILTER(CallCenter_Interact, CallCenter_Interact[NPS Segment]="Promoter")

 

See below he results I am currently getting. How am I supposed to filter the kpi and still get 2M rolling?

 

 

 

PowerBI.JPG

1 ACCEPTED SOLUTION

@momihaila

Thanks for posting those details, which makes your requirement crystal clear. You can try a measure as

aa prom roll1 =
CALCULATE (
    COUNTAX (
        FILTER ( CallCenter_Interact, CallCenter_Interact[NPS Segment] = "Promoter" ),
        CallCenter_Interact[INT ID]
    ),
    DATESINPERIOD (
        CallCenter_Interact[End of Month],
        LASTDATE ( CallCenter_Interact[End of Month] ),
        -2,
        MONTH
    )
)

Capture.PNG

View solution in original post

4 REPLIES 4
Eric_Zhang
Microsoft Employee
Microsoft Employee

@momihaila

What if you put the same condition to the second measure?

aa prom roll1 =
CALCULATE (
    COUNT ( CallCenter_Interact[INT ID] ),
    FILTER ( CallCenter_Interact, CallCenter_Interact[NPS Segmnt] = "Promoter" ),
    DATESINPERIOD condition in your first measure here
)

If it is not your case, please post some sample data and the expected output.

@Eric_Zhang

 

I just realised I didn't paste it all, I already had the same condition for the second measure but still didn't work.

So, the formulas I currently have are:

 

aa rol1 = CALCULATE(COUNT(CallCenter_Interact[INT ID]), DATESINPERIOD(CallCenter_Interact[End of Month], LASTDATE(CallCenter_Interact[End of Month]),-2, Month)) - this one is working

 

aa prom roll1 = CALCULATE(COUNT(CallCenter_Interact[INT ID]),FILTER(CallCenter_Interact, CallCenter_Interact[NPS Segment]="Promoter"), DATESINPERIOD(CallCenter_Interact[End of Month], LASTDATE(CallCenter_Interact[End of Month]),-2, Month)) - this one doesn't return 2M rolling

 

This is what I should get:

EOMRespondersaa rol1Promotersaa prom roll1
31-Jul-178855
31-Aug-1771549
30-Aug-1751226

 

This is a sample of the data:

INT IDEnd of MonthNPS SegmentData apel
60347729839/30/2017 0:00Promoter9/27/2017 0:00
60347657499/30/2017 0:00Promoter9/27/2017 0:00
60308178928/31/2017 0:00Promoter8/9/2017 0:00
60308174398/31/2017 0:00Promoter8/9/2017 0:00
60308087428/31/2017 0:00Promoter8/9/2017 0:00
60307518148/31/2017 0:00Promoter8/9/2017 0:00
60306334767/31/2017 0:00Promoter7/5/2017 0:00
60306316677/31/2017 0:00Promoter7/28/2017 0:00
60306293177/31/2017 0:00Promoter7/5/2017 0:00
60306284497/31/2017 0:00Promoter7/5/2017 0:00
60306269897/31/2017 0:00Promoter7/7/2017 0:00
60345543299/30/2017 0:00Detractor9/27/2017 0:00
60345401489/30/2017 0:00Detractor9/27/2017 0:00
60310618988/31/2017 0:00Detractor8/23/2017 0:00
60306921027/31/2017 0:00Detractor7/20/2017 0:00
60347957959/30/2017 0:00Neutral9/27/2017 0:00
60311161138/31/2017 0:00Neutral8/23/2017 0:00
60311061678/31/2017 0:00Neutral8/23/2017 0:00
60306369757/31/2017 0:00Neutral7/20/2017 0:00
60306314797/31/2017 0:00Neutral7/26/2017 0:00

 

 

 

Thanks!

Hi @momihaila,

 

You may refer to my solution here.

 

Hope this helps.

 

Untitled.png


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

@momihaila

Thanks for posting those details, which makes your requirement crystal clear. You can try a measure as

aa prom roll1 =
CALCULATE (
    COUNTAX (
        FILTER ( CallCenter_Interact, CallCenter_Interact[NPS Segment] = "Promoter" ),
        CallCenter_Interact[INT ID]
    ),
    DATESINPERIOD (
        CallCenter_Interact[End of Month],
        LASTDATE ( CallCenter_Interact[End of Month] ),
        -2,
        MONTH
    )
)

Capture.PNG

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.

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.