Hello naaziz,

for my Percentile , i didn't use mdx function.
i created 5 variables for calculate Percentile follow stat step.

a. find position of P25
b. rank member min to max
c. calculate proportion

(i think it not the best way because it's not flexible and create with long syntax. i think mdx function it's the best way but i cannot create with it)

example -Percentile 25

1.[Sales Rank]

iif(IsEmpty([Measures].[Sales_value]), NULL,
Rank([Dept Member].[Dept Member].CurrentMember,
Filter(Order([Dept Member].[Dept Member].CurrentMember.Level.Members,
([Measures].[Sales_value]), BASC),
isempty([measures].[Sales_value])=0)))


2.[Dim_N]
count(Filter( Order([Dept Member].[Dept Member].[Dept Name].Members, [Dept Member].[Dept Member].CurrentMember.Name, DESC) ,
([Measures].[Sales Rank] <> null ))

3.[PR-25]
25*([Dept Member].[Dept Member].[Dim_N]+1)/100

4.[Dim_Percentile 25]
MAX(Filter( Order([Dept Member].[Dept Member].[Member Name].Members, [Dept Member].[Dept Member].CurrentMember.Name, DESC)
,([Measures].[Sales Rank] = Int([Dept Member].[Dept Member].[PR-25]))))+((MAX(Filter( Order([Dept Member].[Dept Member].[Member Name].Members, [Dept Member].[Dept Member].CurrentMember.Name, DESC) ,
([Measures].[Sales Rank] = Int([Dept Member].[Dept Member].[PR-25]+1))))- MAX(Filter( Order([Dept Member].[Dept Member].[Member Name].Members, [Dept Member].[Dept Member].CurrentMember.Name, DESC) ,([Measures].[Sales Rank] = Int([Dept Member].[Dept Member].[PR-25]))))
)*([Dept Member].[Dept Member].[PR-25]-int([Dept Member].[Dept Member].[PR-25])))


5.[Percentile 25]
([measures].[Sales_value],[Dept Member].[Dept Member].[Dim_Percentile 25])