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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
Ethanhunt123
Helper IV
Helper IV

Highest sales recorded against the average

I have a table that has Order, date, Sales

 

Order # Date Sales
Order #1 20 Aug 2019 100
Order #2 20 Aug 2019 200
Order #3 19 Aug 2019 100
Order #4 19 Aug 2019 100
Order #5 19 Aug 2019 200
Order #6 18 Aug 2019 200

 

First I have to find the average sales per day . So for 20 AUG 2019 average would be 150, 19 AUG 2019  = 133 and for 18 AUG average would be 200.

Then I have to find highest sales against the average 

20 AUG 2019 ( 200 - 150) = 50

19 AUG 2019 (200 - 133) = 67

18 AUG 2019 ( 200- 200)  = 0 

 

So the output would be 19 AUG 2019. Many dates can have 67 so I want all those dates as output.

1 ACCEPTED SOLUTION

Hi @Ethanhunt123 ,

 

Create these measures

 

 

 

Average Sale = 
AVERAGE('Table'[Sales])

 

 

 

 

 

MAXX Sale = MAXX(FILTER(ALL('Table'),'Table'[Date] = MAX('Table'[Date])),'Table'[Sales])

 

 

 

 

 

Highest Sale against Average = [MAXX Sale] - [Average Sale]

 

 

 

 

Rank Highest Sales = RANKX(ALL('Table'[Date]), [Highest Sale against Average])

 

 

 

 

1.jpg

 

1.jpg

 

Create a Visual Filter where Rank =1

 

 

Regards,
Harsh Nathani
Did I answer your question? Mark my post as a solution! Appreciate with a Kudos!! (Click the Thumbs Up Button)

 

View solution in original post

4 REPLIES 4
ryan_mayu
Super User
Super User

@Ethanhunt123 

you can try to create a new table to return the date value.

Table 2 = 
VAR tbl=SUMMARIZE('Table','Table'[Date],"diff",max('Table'[Sales])-AVERAGE('Table'[Sales]))
VAR tbl2=ADDCOLUMNS(tbl,"rank",RANKX(tbl,[diff],,DESC))
return SELECTCOLUMNS(FILTER(tbl2,[rank]=1),"date",'Table'[Date])

1.PNG





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




amitchandak
Super User
Super User

@Ethanhunt123 , Plot this measure with date

countx(filter(summarize(Table,table[Date], "_1", Rankx(all(Table), calculate( max(Table[Sales]) - avergage(Table[Sales])),,desn,skip)),[_1]=1),[Date])

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

Hi @Ethanhunt123 ,

 

Create these measures

 

 

 

Average Sale = 
AVERAGE('Table'[Sales])

 

 

 

 

 

MAXX Sale = MAXX(FILTER(ALL('Table'),'Table'[Date] = MAX('Table'[Date])),'Table'[Sales])

 

 

 

 

 

Highest Sale against Average = [MAXX Sale] - [Average Sale]

 

 

 

 

Rank Highest Sales = RANKX(ALL('Table'[Date]), [Highest Sale against Average])

 

 

 

 

1.jpg

 

1.jpg

 

Create a Visual Filter where Rank =1

 

 

Regards,
Harsh Nathani
Did I answer your question? Mark my post as a solution! Appreciate with a Kudos!! (Click the Thumbs Up Button)

 

This is giving me 1 for all the dates.

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

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

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors