It has been a while since I've been around, and after much forum scouring and Google hunting, I pose the following MDX puzzler for your deliberation...
Aim: I am looking to generate a MDX subset over the "Calendar" dimension which returns the years between a 'Start year' and 'End year' (held in a control cube) via an individual's current selections "Scenario" and "Org" (held in a different control cube).
1) The user's current scenario and org are stored in a 2D cube "UserControl", comprising "}Clients" and "UserControlMeasure" dimensions (using picklists

}Clients = "Admin"
UserControlMeasure = "Current scenario"
Cube value = "Scenario 1"
and
}Clients = "Admin"
UserControlMeasure = "Current org"
Cube value = "ORG001"
2) A different cube "ScenarioControl" holds the 'Start year' and 'End year' for a scenario / org combination, comprising "Org", "Scenario" and "ScenarioControlMeasure" dimensions:
Org = "ORG001"
Scenario = "Scenario 1"
Measure = "Start year"
Cube value = "2010"
and
Org = "ORG001"
Scenario = "Scenario 1"
Measure = "End year"
Cube value = "2020"
3) I can create a MDX query on the "Scenario" dimension to return the correct element
{TM1FILTERBYPATTERN( {TM1SUBSETALL( [Scenario] )}, [UserControl].(StrToMember("[}Clients].["+USERNAME+"]"),[UserControlMeasure].[Current scenario]))} = "Scenario 1"
4) And can create a MDX query on the "Org" dimension to return the correct element
{TM1FILTERBYPATTERN( {TM1SUBSETALL( [Organisation] )}, [UserControl].(StrToMember("[}Clients].["+USERNAME+"]"),[UserControlMeasure].[Current organisation]))} = "ORG001"
5) I can even create a MDX subset on the "Calendar" dimension to return the correct 5 year elements, but only when I hard code the "Scenario" and "Org" members (over another control cube, which uses rules to determine whether a particular year is greater-than-or-equal-to the 'Start year' but less-than-or-equal-to the 'End year')
{FILTER( {TM1FILTERBYLEVEL( {TM1SUBSETALL([Calendar])}, 0)}, ScenarioCalendarControl.(OrganisationSummary.[ORG001],Scenario.[Scenario 1]) > 0) = "2010, 2011, ... , 2020"
6) However, if I attempt to paste the MDX expressions from 4) and/or 5) into this final expression, I get an error message. I have tried saving the prior two expressions as subsets and then insert the subset names into the final expression i.e.
{FILTER( {TM1FILTERBYLEVEL( {TM1SUBSETALL([Calendar])}, 0)}, ScenarioCalendarControl.(OrganisationSummary.[My current org],Scenario.[My current scenario]) > 0)
and although these subset expressions work in the original dimensions, they do not seem to work when integrated into the greater whole...
I have a deep-seated suspicion that I am attempting this in a somewhat "verbose" manner and than a more elegant solution evades me. All and any pointers are gratefully recieved,
TM1Dunk