cancel
Showing results for
Did you mean:
Helper II

## Dynamic % Growth based on selected date slicer

Hi Folks,

I would like to calculate the growth percentage (%) based on selected date slicer.

Any help is high appreciated.

Thank you in advance.

1 ACCEPTED SOLUTION
Community Support

Hi @tracytran91 ,

Suppose you are comparing the past 3 months with the current month, you can create a measure like this:

``````Growth% =
VAR _mindate =
CALCULATE ( MIN ( 'Table'[Date] ), ALLSELECTED ( 'Table'[Date] ) )
VAR _maxdate =
CALCULATE ( MAX ( 'Table'[Date] ), ALLSELECTED ( 'Table'[Date] ) )
VAR last3month =
CALCULATE (
SUM ( 'Table'[value] ),
FILTER (
ALL ( 'Table' ),
'Table'[Date] >= _mindate
&& 'Table'[Date] <= _maxdate
)
)
VAR currentmonth =
CALCULATE (
SUM ( 'Table'[value] ),
FILTER (
ALL ( 'Table' ),
YEAR ( 'Table'[Date] ) = YEAR ( TODAY () )
&& MONTH ( 'Table'[Date] ) = MONTH ( TODAY () )
)
)
RETURN
DIVIDE ( currentmonth - last3month, last3month )``````

Attached a sample file in the below, hopes to help you.

Best Regards,
Community Support Team _ Yingjie Li
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

5 REPLIES 5
Helper II

@v-yingjl @amitchandak Thank for your solution. Unfortunately, the result is not as I expected.

I would like selected date on slicer such as "last 3 months", "last 6 months", "last 1 year"..... and it shows up the % growth regarding to the selected date.

Community Support

Hi @tracytran91 ,

Suppose you are comparing the past 3 months with the current month, you can create a measure like this:

``````Growth% =
VAR _mindate =
CALCULATE ( MIN ( 'Table'[Date] ), ALLSELECTED ( 'Table'[Date] ) )
VAR _maxdate =
CALCULATE ( MAX ( 'Table'[Date] ), ALLSELECTED ( 'Table'[Date] ) )
VAR last3month =
CALCULATE (
SUM ( 'Table'[value] ),
FILTER (
ALL ( 'Table' ),
'Table'[Date] >= _mindate
&& 'Table'[Date] <= _maxdate
)
)
VAR currentmonth =
CALCULATE (
SUM ( 'Table'[value] ),
FILTER (
ALL ( 'Table' ),
YEAR ( 'Table'[Date] ) = YEAR ( TODAY () )
&& MONTH ( 'Table'[Date] ) = MONTH ( TODAY () )
)
)
RETURN
DIVIDE ( currentmonth - last3month, last3month )``````

Attached a sample file in the below, hopes to help you.

Best Regards,
Community Support Team _ Yingjie Li
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Super User IV

@tracytran91 , do want like this diff 3 vs 3 before it

Rolling 3 = CALCULATE(sum(Sales[Sales Amount]),DATESINPERIOD('Date'[Date ],eomonth(MAX('Date'[Date]),0),-3,MONTH))
Rolling 3 before 3 = CALCULATE(sum(Sales[Sales Amount]),DATESINPERIOD('Date'[Date ],eomonth(MAX('Date'[Date]),-3),-3,MONTH))

or

Rolling 3 = CALCULATE(sum(Sales[Sales Amount]),DATESINPERIOD('Date'[Date ],MAX('Date'[Date]),-3,MONTH))
Rolling 3 before 3 = CALCULATE(sum(Sales[Sales Amount]),DATESINPERIOD('Date'[Date ],MAXX('Date',dateadd('Date'[Date],-3,month)),-3,MONTH))

Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
Dashboard of My Blogs !! YouTube Channel !! Connect on Linkedin

Proud to be a Super User!

Community Support

Hi @tracytran91 ,

You can create a date table based on your source table and use it as a slicer:

``Date = DISTINCT('Table'[Date])``

Create a measure like this to calculate growth%:

``````Growth% =
VAR _selectdatevalue =
CALCULATE (
SUM ( 'Table'[value] ),
FILTER ( ALL ( 'Table' ), 'Table'[Date] = SELECTEDVALUE ( 'Date'[Date] ) )
)
RETURN
DIVIDE ( SUM ( 'Table'[value] ) - _selectdatevalue, SUM ( 'Table'[value] ) )
``````

Attached a sample file in the below, hopes to help you.

Best Regards,
Community Support Team _ Yingjie Li
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Super User IV

@tracytran91 , With one date(using date table) with min and max

measure =
var _max = maxx(allselected(Data), Data[Date])
var _Min = minx(allselected(Data), Data[Date])
return
divide(calculate([measure],filter('Date', 'Date'[date] =_max)) -calculate([measure],filter('Date', 'Date'[date] =_min)),calculate([measure],filter('Date', 'Date'[date] =_min)))

With two date ranges

https://community.powerbi.com/t5/Community-Blog/Comparing-Data-Across-Date-Ranges/ba-p/823601

To get the best of the time intelligence function. Make sure you have a date calendar and it has been marked as the date in model view. Also, join it with the date column of your fact/s. Refer :radacad sqlbi My Video Series Appreciate your Kudos.

Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
Dashboard of My Blogs !! YouTube Channel !! Connect on Linkedin

Proud to be a Super User!

Announcements

#### Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group