Forum Discussion

Artemis1254's avatar
Artemis1254
Frequent Visitor
8 years ago
Solved

Unorthodox Median Calculation

Hi,   In Direct Query mode, is there a way to calculate median numbers such that if the number of values selected is odd then the middle one will become the median. If the number of values chosen a...
  • OwenAuger's avatar
    8 years ago

     

    Hi again,

    It turns out you can do something like this, assuming you have enabled all functions in DirectQuery.

     

    I have taken this code basically verbatim from

    https://www.daxpatterns.com/statistical-patterns/#median22

     

    Median Unorthodox =
    VAR NumValuesHalved = COUNT ( YourTable[Latency] ) / 2
    RETURN
        MINX (
            FILTER (
                VALUES ( YourTable[Latency] ),
                CALCULATE (
                    COUNT ( YourTable[Latency] ),
                    YourTable[Latency] <= EARLIER ( YourTable[Latency] )
                )
                    > NumValuesHalved
            ),
            YourTable[Latency]
        )

     The code produces the "upper" median value in the case of an even number of items, otherwise produces the middle value.

     

    Regards,

    Owen :)