cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
MindIsBlank Frequent Visitor
Frequent Visitor

DAX Version of Excel's DSTDEV

New to Power BI but have some experience with Tableau.

 

Looking to add a measure that calculates the standard deviation for unique categorical values in a column. For example, Column A has a category. Column B has the values on which I need to calculate the standard deviation. I need to calculate the st dev of Column B for all unique categories of Column A. Example data below:

 

Column AColumn B
Name1204.0730158
Name27176.691379
Name3129.2877416
Name1205.8627572
Name27203.935509
Name3130.522898
Name1207.2325321
Name27231.588786
Name3130.8039379

 

Name1 st dev would use 204.0730158, 205.8627572, and 207.2325321. Name2 and Name3 st deve would follow in similar manner. Hoping to setup a measure that would do all that for me so I can use it in line charts and scatter plots.

 

Any ideas? Thanks in advance.

1 ACCEPTED SOLUTION

Accepted Solutions
MindIsBlank Frequent Visitor
Frequent Visitor

Re: DAX Version of Excel's DSTDEV

I figured it out. Had to use nested filtering described in this article from 2012.

 

Measure code looks like this:

 

calculate(
     STDEV.P(Column B)
     ,FILTER(
          ALL('Table')
          ,COUNTROWS(
               FILTER(
                    'Table'
                    ,EARLIER(Column A) = Column A
               )
          )
     )
)

View solution in original post

4 REPLIES 4
Super User II
Super User II

Re: DAX Version of Excel's DSTDEV

Create a measure like below:
SD=STDEV.P(Table[SalesAmount])

Don't forget to give thumbs up 👍and accept this as a solution if this helps you.
HamiltonVT Member
Member

Re: DAX Version of Excel's DSTDEV

Measure =

Calculate (

        STDEV.P('TableName'[ColumnB]),

        ColumnA = "Name1")

MindIsBlank Frequent Visitor
Frequent Visitor

Re: DAX Version of Excel's DSTDEV

Yeah, I thought of that but I need it to dynamically load what goes into the CALCULATE() filter based on the row Power BI is evaluating. So it would be something like:

 

Calculate (

        STDEV.P('TableName'[ColumnB]),

        ColumnA = {Value from Column A in row being evaluated})

 

I just can't figure out how to tell it to do it that way. Another way I've gotten this to work in Excel is using the following formula as an array formula.

 

=STDEV.P(IF($A$2:$A$9000=A2,$B$2:$B$9000))

MindIsBlank Frequent Visitor
Frequent Visitor

Re: DAX Version of Excel's DSTDEV

I figured it out. Had to use nested filtering described in this article from 2012.

 

Measure code looks like this:

 

calculate(
     STDEV.P(Column B)
     ,FILTER(
          ALL('Table')
          ,COUNTROWS(
               FILTER(
                    'Table'
                    ,EARLIER(Column A) = Column A
               )
          )
     )
)

View solution in original post

Helpful resources

Announcements
Exclusive LIVE Community Event #3 – Ask Arun Anything

Exclusive LIVE Community Event #3 – Ask Arun Anything

Join us in the third Triple A event!

Meet the 2020 Season 1 Power BI Super Users!

Meet the 2020 Season 1 Power BI Super Users!

It’s the start of a new Super User season! Learn all about the new Super Users and brand-new tiered recognition system.

Super User Challenge: Can You Solve These?

Super User Challenge: Can You Solve These?

We're celebrating the start of the New Super User season with our first ever Super User 'Can You Solve These?' challenge.

Power BI Desktop Update - February 2020

Power BI Desktop Update - February 2020

We are super excited for our update this month, as we are releasing two of our top community requests!

Power Platform Online Conference

Power Platform Online Conference

Join us for the first ever Power Platform Online Conference!

Top Solution Authors