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
Anonymous
Not applicable

Evaluate row value to measure - simple example

Hi,

 

Im trying to evaluate each column value agaisnt the measure but cant seem to figure out why it is struggling.

 

A very simple 1 column table (Test);

 

Number

---------

1

2

3

4

5

6

7

8

9

10

 

Measure = STDEV.P(Test[Number]) - which gives a Standard deviation value of 2.87

 

I have now a calculated column that checks to see iff each of the values in the number column is greater than or less than the Standard Deviation calculated in the measure using this formula;

 

LogicalTest = IF(Test[Number]<[Measure], "Less", "Greater")

 

But the resulting table looks like this;

 

pbi.JPG 

 

 

 

Why is it evaluating each row value as "Greater"? Surely values 1 and 2 should show "Less"

 

See the PBI file below:

 

https://www.dropbox.com/s/kyrfej1luf8uwan/MeasureVsColumn.pbix?dl=0

 

1 ACCEPTED SOLUTION
yelsherif
Resolver IV
Resolver IV

Usually, measures adapt according to the scope it is used for, so it will change to the standard deviation of the current row being evaluated and will always give an incorrect result. To overcome this you need to fix the calculation to estimate the value over all the values in the column. Use this one: STD = calculate(STDEV.P(Table1[Number]),ALL(Table1[Number])) Then do your check against this measure.

View solution in original post

5 REPLIES 5
yelsherif
Resolver IV
Resolver IV

Usually, measures adapt according to the scope it is used for, so it will change to the standard deviation of the current row being evaluated and will always give an incorrect result. To overcome this you need to fix the calculation to estimate the value over all the values in the column. Use this one: STD = calculate(STDEV.P(Table1[Number]),ALL(Table1[Number])) Then do your check against this measure.
Zubair_Muhammad
Community Champion
Community Champion

@Anonymous

 

Measures transform row context to Filter context



So your STDEV.P gets calculated for each individual row in above formula

 

Try

LogicalTest = IF(Test[Number]<STDEV.P(Test[Number]), "Less", "Greater")

 

 

 

Anonymous
Not applicable

Thanks for that. 

 

The only issue I have is that the Standard deviation needs to be stored as a measure. And from there it needs to evaluate each row to that measure value. Can this be achieved anyhow?

@Anonymous

 

If you want to keep the original measure you can use

 

LogicalTest_ = 
 IF(Test[Number]<CALCULATE([Measure],ALL(Test)), "Less", "Greater")
Anonymous
Not applicable

Thank you both @Zubair_Muhammad and @yelsherif this worked Smiley Happy

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!

September Power BI Update Carousel

Power BI Monthly Update - September 2025

Check out the September 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
Top Kudoed Authors