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

Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.

Reply
MPSG
New Member

Dynamic Countrow within Sumx

Hi,

 

My skills in PowerBI are quite limited so I think this should be an easy question for you 🙂 

 

I have the following table for example:

 

Unit       Capacity     Month

 

1               10               5

1               10               6

1               10               7

2               11               5

2               11               7

3               30               7

 

 

I am trying to create a measure that gives me the average value for the capacity.

 

However I don't just want a simple average of sum(capacity)/countrows.

 

My aim is to just have capacity for unit1 + capacity for unit2 + capacity for unit 3 / number of units

This would be (10 + 11 + 30) /3 = 17

 

I thought with a sumx it could work:

 

=Divide(Sumx(table, Capacity/Calculate(Countrow(table), FILTER)),Distinctcount(Unit))

 

The part I am struggling with is the FILTER as I need countrow to be a dynamic value instead of static so that I could have the following sum:

 

(10/3+10/3+10/3+11/2+11/2+30/1)/3 = 17

 

So the countrow needs to be either 3 or 2 or 1

 

Any ideas?

 

Best regards

2 ACCEPTED SOLUTIONS

Hi @Anonymous thanks for the help.

 

I couldn't make it work with that solution though.

 

I think I was able to solve it now with the SUMMARIZE:

 

divide(sumx(SUMMARIZE(table,capacity,unit),capacity]), countrows(SUMMARIZE(table,capacity,unit)))
 
Best regards

View solution in original post

Anonymous
Not applicable

Hi @MPSG 

Summariz function is a good way to solve this problem, and you may try my way use addcolumn and average function.

Measure = 
VAR _Result = DIVIDE(SUMX(ADDCOLUMNS(GENERATESERIES(1,3,1),"Avg",AVERAGEX(FILTER('Table','Table'[Unit]=[Value]),'Table'[Capacity])),[Avg]),DISTINCTCOUNT('Table'[Unit]))
return
_Result

Result:

1.png 

Best Regards,

Rico Zhou

 

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly. 

 

View solution in original post

4 REPLIES 4
Anonymous
Not applicable

Hi @MPSG 

Summariz function is a good way to solve this problem, and you may try my way use addcolumn and average function.

Measure = 
VAR _Result = DIVIDE(SUMX(ADDCOLUMNS(GENERATESERIES(1,3,1),"Avg",AVERAGEX(FILTER('Table','Table'[Unit]=[Value]),'Table'[Capacity])),[Avg]),DISTINCTCOUNT('Table'[Unit]))
return
_Result

Result:

1.png 

Best Regards,

Rico Zhou

 

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly. 

 

AllisonKennedy
Super User
Super User

@MPSG
If you want Average capacity, use AVERAGEX()
Whatever value you want in the denominator for the AVERAGE should match the number of rows in the table you give to the AVERAGEX function.
See this post that might explain why and how this works

@MPSG  forgot to post the link, here it is: https://excelwithallison.blogspot.com/2020/09/what-does-average-mean.html

(I'd love feedback on it so feel free to leave a comment, as averages are SUPER confusing and it took me a while to wrap my head around them, so not sure I've done a great job communicating my knowledge, but I'm trying).
I think you're looking for:
AVERAGEX(VALUES(table[Unit]), AVERAGE(Table[Capacity]))
In your sample data, Capacity is always the same for a selected Unit, so you could use MAX(Table[Capacity]) instead of AVERAGE(Table[Capacity]), or MIN, but just depends what you actually need to measure.

Hope that helps!


Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

Anonymous
Not applicable

HI @MPSG 

Try

SUMX(CALCULATE(AVERAGE(table[capacity]),ALLEXCEPT(table,table[unit]))

Hi @Anonymous thanks for the help.

 

I couldn't make it work with that solution though.

 

I think I was able to solve it now with the SUMMARIZE:

 

divide(sumx(SUMMARIZE(table,capacity,unit),capacity]), countrows(SUMMARIZE(table,capacity,unit)))
 
Best regards

Helpful resources

Announcements
FabCon Global Hackathon Carousel

FabCon Global Hackathon

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!

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.