Как вы рассчитываете процентили с Dax / Power Bi? - PullRequest
0 голосов
/ 11 марта 2019

Итак, у меня есть набор данных с днями, чтобы доставить продукт, который выглядит следующим образом

Примечание. Заказ с DaysToDeliver = 0 означает, что он был доставлен в тот же день покупки, тогда как DaysToDeliver = NULL означает, что он не был доставлен.

| ItemID | OrderStatus | DateDelivered | DaysToDeliver |
--------------------------------------------------------
| 12145  | canceled    | null          | null          |  
| 12145  | delivered   | 2019-02-01    | 0             |
| 12145  | delivered   | 2019-02-01    | 1             |
| 12145  | delivered   | 2019-02-01    | 1             |
| 12145  | delivered   | 2019-02-01    | 3             |

Мне нужно вычислить процентиль 80 по выбранной дате (показывается по дням, неделям, месяцам), но я думаю, что я не использую правильную формулу для вычисления процентиля.

Я использовал следующие формулы и получил разные результаты с каждой из них:

ФОРМУЛА 1

P80. Leadtime = CALCULATE( 
                    PERCENTILEX.INC( 
                        FILTER( 'LogisticsDB', 'LogisticsDB'[DaysToDeliver] <> BLANK() )
                        ,'LogisticsDB'[DaysToDeliver]
                        , 0.80 
                    )
                    ,USERELATIONSHIP( 
                        Calendar[Date]
                        ,'LogisticsDB'[DateDelivered] 
                    ) 
                )

ФОРМУЛА 2

P80. Leadtime = CALCULATE( 
                    PERCENTILE.INC( 
                        'LogisticsDB'[DaysToDeliver]
                        ,0.80 
                    )
                    ,FILTER( 
                        'LogisticsDB'
                        ,'LogisticsDB'[DaysToDeliver] <> BLANK() 
                    )
                    ,USERELATIONSHIP( 
                        Calendar[Date]
                        ,'LogisticsDB'[DateDelivered] 
                    ) 
                )

ФОРМУЛА 3

P80. Leadtime = CALCULATE( 
                    PERCENTILE.INC( 
                        'LogisticsDB'[DaysToDeliver]
                        ,0.80 
                    )
                    ,FILTER( 
                        'LogisticsDB'
                        ,'LogisticsDB'[DaysToDeliver] >= 0 
                    )
                    ,USERELATIONSHIP( 
                        Calendar[Date]
                        ,'LogisticsDB'[DateDelivered] 
                    ) 
                )
...