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

How to calculate average only for certain values?

So I have inherited from another user a table with a couple of columns that calculate the difference between two other columns and then replaces all negative values with zero, as follows:

 

Column C = datediff('Table'[Column B].[Date],'Table'[Column A].[Date],DAY))

 

Column D = if('Table'[Column C]>0,'Table'[Column C],0)

 

There is then a visual which displays the average of Column D via the following Measure:

 

Measure = CALCULATE(AVERAGE(Table[Column D]))

 

The problem with this is that the zeroes in Column D are artificially pulling the average down (Column D is a "days late" kind of metric, so we shouldn't be including zeroes). How can I go about changing the measure to only calculate the average for non-zero values? I tried using FILTER and WHERE statements as follows with no success (syntax errors):

 

Measure = WHERE(Table[Column D]>0),CALCULATE(AVERAGE(Table[Column D]))

 

Measure CALCULATE(AVERAGE(FILTER(Table,[Column D]>0)))

 

It is probably pretty obvious from my question that I am a complete newbie to DAX syntax. Could someone please help? I'm sure there's probably a MUCH simpler way of accomplishing this task, I just don't know the language to do it. Thanks in advance!

2 ACCEPTED SOLUTIONS
Anonymous
Not applicable

Of what I can make from you starting text the measure should be something like this:

DIVIDE(
SUM('Table'[Column D]),
CALCULATE(COUNT('Table'[Column D]),FILTER(ALL(Table);'Table'[Column D] >0))
)

 

View solution in original post

Anonymous
Not applicable

UPDATE! SUCCESS!

 

@Anonymous you got me VERY close, the solution ended up being what you gave me, minus the "All" in the filter:

 

= DIVIDE(SUM('Table'[Column D]),CALCULATE(COUNT('Table'[Column D]),FILTER(Table,'Table'[Column D]>0)))

 

I think the "All" was negating the filter somehow. 

 

Anyway, big thanks to you and @Anonymous! Problem Solved!

View solution in original post

10 REPLIES 10

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.