cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
cristian-ciia
Regular Visitor

Generate the rolling average excluding the blank cells

Hello everyone,

I am building a financial dashboard with prices of stocks. I have a Dim_Calendar_Table that I use as main calendar. On the other hand, I have other table with Prices, Dates and Names. 

Well, I am trying to get the rolling std deviation but I have a problem, I have weekend days int the Dim_calendar_Table and I don't know how to ignore them in order to calculate the last 4 days for example.

 

cristianciia_0-1658846468802.png

 

4_Day_Rolling_Price = 
VAR DateFilter=
    DATESINPERIOD(
        'Dim_Calendar DAX'[Date],
        MAX('Dim_Calendar DAX'[Date]),
        -4,DAY)
VAR RollingAvg = 
    CALCULATE(
        [Precio],
        DateFilter)
RETURN
    DIVIDE(
        RollingAvg, 
        COUNTROWS(
            FILTER(
                DateFilter,
                    [Precio]<>BLANK()


)))

 

I will appreciate your help!

 

Many thanks! 

1 ACCEPTED SOLUTION
Jihwan_Kim
Super User
Super User

Hi,

I tried to create a sample pbix file like below.

Please check the below picture and the attached pbix file.

I hope the below provides some ideas on how to create a solution for your dataset.

 

Untitled.png

 

Four days rolling avg excluding blank: =
VAR _currentdate =
    MAX ( 'Calendar'[Date] )
VAR _beforethancurrentdate =
    ADDCOLUMNS (
        FILTER ( ALL ( 'Calendar' ), 'Calendar'[Date] <= MAX ( 'Calendar'[Date] ) ),
        "@price", [Price measure:]
    )
VAR _filterblank =
    SUMMARIZE (
        FILTER ( _beforethancurrentdate, [@price] <> BLANK () ),
        'Calendar'[Date]
    )
VAR _top4table =
    TOPN ( 4, _filterblank, 'Calendar'[Date], DESC )
RETURN
    CALCULATE ( [Price measure:], _top4table ) / COUNTROWS ( _top4table )

If this post helps, then please consider accepting it as the solution to help other members find it faster, and give a big thumbs up.


Go to My LinkedIn Page


View solution in original post

1 REPLY 1
Jihwan_Kim
Super User
Super User

Hi,

I tried to create a sample pbix file like below.

Please check the below picture and the attached pbix file.

I hope the below provides some ideas on how to create a solution for your dataset.

 

Untitled.png

 

Four days rolling avg excluding blank: =
VAR _currentdate =
    MAX ( 'Calendar'[Date] )
VAR _beforethancurrentdate =
    ADDCOLUMNS (
        FILTER ( ALL ( 'Calendar' ), 'Calendar'[Date] <= MAX ( 'Calendar'[Date] ) ),
        "@price", [Price measure:]
    )
VAR _filterblank =
    SUMMARIZE (
        FILTER ( _beforethancurrentdate, [@price] <> BLANK () ),
        'Calendar'[Date]
    )
VAR _top4table =
    TOPN ( 4, _filterblank, 'Calendar'[Date], DESC )
RETURN
    CALCULATE ( [Price measure:], _top4table ) / COUNTROWS ( _top4table )

If this post helps, then please consider accepting it as the solution to help other members find it faster, and give a big thumbs up.


Go to My LinkedIn Page


Helpful resources

Announcements
PBI Sept Update Carousel

Power BI September 2023 Update

Take a look at the September 2023 Power BI update to learn more.

Learn Live

Learn Live: Event Series

Join Microsoft Reactor and learn from developers.

Dashboard in a day with date

Exclusive opportunity for Women!

Join us for a free, hands-on Microsoft workshop led by women trainers for women where you will learn how to build a Dashboard in a Day!

MPPC 2023 PBI Carousel

Power Platform Conference-Power BI and Fabric Sessions

Join us Oct 1 - 6 in Las Vegas for the Microsoft Power Platform Conference.

Top Solution Authors
Top Kudoed Authors