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

Compete to become Power BI Data Viz World Champion! First round ends August 18th. Get started.

Reply
qixue
Frequent Visitor

Calculate growth dynamically based on the date hierarcy

New to PowerBI. Thank you for your help

 

I was able to mimic the "new quick measure" utility to caculate the daily sales growth as below. My questions is how to make it dynamic so that if my date hierarchy rolls up to month or year, the growth will be calculated accordingly?

 

Avg Daily Sales Growth = 
IF(
	ISFILTERED('Date'[Date]),
			VAR _PREV = CALCULATE(
			SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]),
            DATEADD('Date'[Date], -1, DAY)
			)
RETURN
	DIVIDE(SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]) - _PREV, _PREV)
)
1 ACCEPTED SOLUTION
qixue
Frequent Visitor

It worked!!

Avg Daily Sales Growth = 
IF(
	ISFILTERED('Date'[Date].[Day]),
	VAR _PREV_DAY = CALCULATE(
		SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]),
		DATEADD('Date'[Date], -1, DAY)
	)			
	RETURN
		DIVIDE(SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]) - _PREV_DAY, _PREV_DAY),
	IF(
		ISFILTERED('Date'[Date].[Month]),
		VAR _PREV_MONTH = CALCULATE(
			SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]),
            DATEADD('Date'[Date], -1, MONTH)
			)			
		RETURN
			DIVIDE(SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]) - _PREV_MONTH, _PREV_MONTH),
		IF(
			ISFILTERED('Date'[Date].[Quarter]),
			VAR _PREV_QUARTER = CALCULATE(
				SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]),
				DATEADD('Date'[Date], -1, QUARTER)
			)			
			RETURN
				DIVIDE(SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]) - _PREV_QUARTER, _PREV_QUARTER),
			IF(
				ISFILTERED('Date'[Date].[Year]),
				VAR _PREV_YEAR = CALCULATE(	
					SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]),
					DATEADD('Date'[Date], -1, YEAR)
				)			
				RETURN
					DIVIDE(SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]) - _PREV_YEAR, _PREV_YEAR)
			)
		)
	)		
)

View solution in original post

1 REPLY 1
qixue
Frequent Visitor

It worked!!

Avg Daily Sales Growth = 
IF(
	ISFILTERED('Date'[Date].[Day]),
	VAR _PREV_DAY = CALCULATE(
		SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]),
		DATEADD('Date'[Date], -1, DAY)
	)			
	RETURN
		DIVIDE(SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]) - _PREV_DAY, _PREV_DAY),
	IF(
		ISFILTERED('Date'[Date].[Month]),
		VAR _PREV_MONTH = CALCULATE(
			SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]),
            DATEADD('Date'[Date], -1, MONTH)
			)			
		RETURN
			DIVIDE(SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]) - _PREV_MONTH, _PREV_MONTH),
		IF(
			ISFILTERED('Date'[Date].[Quarter]),
			VAR _PREV_QUARTER = CALCULATE(
				SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]),
				DATEADD('Date'[Date], -1, QUARTER)
			)			
			RETURN
				DIVIDE(SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]) - _PREV_QUARTER, _PREV_QUARTER),
			IF(
				ISFILTERED('Date'[Date].[Year]),
				VAR _PREV_YEAR = CALCULATE(	
					SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]),
					DATEADD('Date'[Date], -1, YEAR)
				)			
				RETURN
					DIVIDE(SUM('Raw Data'[Fin Sales Amt])/DISTINCTCOUNT('Raw Data'[Sales Date]) - _PREV_YEAR, _PREV_YEAR)
			)
		)
	)		
)

Helpful resources

Announcements
August Power BI Update Carousel

Power BI Monthly Update - August 2025

Check out the August 2025 Power BI update to learn about new features.

August 2025 community update carousel

Fabric Community Update - August 2025

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

Top Solution Authors