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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

Dynamically calculate average each month

Hi everyone,

 

I have a DAX question; I have a table of sales values along with each month as shown below:

ex1.PNG

 

I also have an order table as shown:

ex2.PNG

 

And those two tables are hooked up as follows:

ex3.PNG

 

I am trying to have a table where on the rows, I will get the months and the values and the average value something like that:

ex4.PNG

The caveat is that I am displaying only the first 4months, that is January to April using a visual level filter.

As you can see from the table above, the measure
(1) "Average" is returning the average over 12 months

(2) "Average1" is returning the right answer

(3) "Average2" is not working

 

Here is the DAX for each one:

 

Average = CALCULATE(AVERAGE(Sales[Sales]),all('Order'[Month],'Order'[Order]))
 
Average1 = CALCULATE(AVERAGE(Sales[Sales]),filter(all('Order'[Month],'Order'[Order]),'Order'[Month] IN {"January","February","March","April"}))
 
Average2 = CALCULATE(AVERAGE(Sales[Sales]),filter(all('Order'[Month],'Order'[Order]),'Order'[Month] IN VALUES('Order'[Month])))
 
What I was trying to do with "Average 2" was to get the same expression as "Average1" to update automatically when I include or exclude other months from my visual level filter.
 
Is there anyway to do that?
1 ACCEPTED SOLUTION
amitchandak
Super User
Super User

@Anonymous , In such case please prefer to have date table in such case , try like

Average2 = CALCULATE(AVERAGE(Sales[Sales]),filter(all('Order'),'Order'[Month] IN VALUES('Order'[Month])))

or

Average2 = CALCULATE(AVERAGE(Sales[Sales]),filter(all('Date'),'Date'[Month] IN VALUES('Date'[Month])))

 

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 :
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/

See if my webinar on Time Intelligence can help: https://community.powerbi.com/t5/Webinars-and-Video-Gallery/PowerBI-Time-Intelligence-Calendar-WTD-YTD-LYTD-Week-Over-Week/m-p/1051626#M184


Appreciate your Kudos.

View solution in original post

2 REPLIES 2
amitchandak
Super User
Super User

@Anonymous , In such case please prefer to have date table in such case , try like

Average2 = CALCULATE(AVERAGE(Sales[Sales]),filter(all('Order'),'Order'[Month] IN VALUES('Order'[Month])))

or

Average2 = CALCULATE(AVERAGE(Sales[Sales]),filter(all('Date'),'Date'[Month] IN VALUES('Date'[Month])))

 

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 :
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/

See if my webinar on Time Intelligence can help: https://community.powerbi.com/t5/Webinars-and-Video-Gallery/PowerBI-Time-Intelligence-Calendar-WTD-YTD-LYTD-Week-Over-Week/m-p/1051626#M184


Appreciate your Kudos.

jdbuchanan71
Super User
Super User

@Anonymous 

Give this a try, 2 measures.

Sales Amount = SUM (Sales[Sales])
Average Sales =
CALCULATE (
    AVERAGEX ( ALLSELECTED ( 'Order'[Month] ), [Sales Amount] ),
    ALLSELECTED ( 'Order' )
)

 

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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