Multiselect friendly MDX for calculations looking at current coordinate
Last year I wrote a blog about Writing multiselect friendly MDX calculations, which according to the statistics quickly became one of the most popular blog entries. In that blog we discussed how AS converts multiselect calculated members with Aggregate into sets in WHERE clause and how to code MDX expressions in order to avoid references to CurrentMember function, which fails when there is a set in the current coordinate. However, it is not always possible to avoid direct or indirect reference to CurrentMember. Let's take as an example calculations for the previous period described in the Time calculations in UDM: ParallelPeriod (another very popular post). ParallelPeriod function needs to have single member as a CurrentMember, because ParallelPeriod returns a single member. The same is true about many other MDX functions - PrevMember, Lag, Lead, Parent, Ancestors, Siblings, FirstChild, LastChild etc.
Tags: mdx, multiselect