Forum Discussion
MDX to DAX
I am facing complexity while converting MDX to DAX(SSAS to PowerBI). Can you please help here to convert below calculations
1.
SUM(PeriodsToDate([Time_Period].[Time_Period].[Period],[Time_Period].[Time_Period].CurrentMember),[Measures].[Hrs_Act_Admin_POS])
2.
SUM(([Time_Period].[Time_Period].currentmember.parent.firstsibling.firstchild:[Time_Period].[Time_Period].currentmember.parent.lastsibling.lastchild),
[Measures].[Hrs_LY_Admin_POS])
3.
SUM(([Time_Period].[Time_Period].currentmember.FirstSibling:[Time_Period].[Time_Period].currentmember.lastsibling),[Measures].[Hrs_LY_POS])
6 Replies
- amitchandakSuper User
Anonymous , Can you tell us what these are doing , might be easy to suggest
also, check
https://www.sqlbi.com/articles/converting-mdx-to-dax-first-steps/
- AnonymousNot applicable
HI Amith,
These are calculated mesures in my SSAS multildimensinal model. We are planning to migrate the same to PowerBI reports.
- amitchandakSuper User
Anonymous , I am not an expert at MDX, so wanted what you need, so I can help.
Like we have functions datesmtd, Datesqtd, and datesytd for till date.
MTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD('Date'[Date]))
YTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD('Date'[Date],"12/31"))
QTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESQTD(('Date'[Date])))
But we can combine them with slicer selection
Switch Period =
var _max = if(isfiltered('Date'),MAX( 'Date'[Date]) , today())
var _min =
SWITCH(SELECTEDVALUE(Period[PeriodType])
"YTD",if( Month(_max) <4 , date(year(_max)-1,4,1) ,date(year(_max),4,1)), //FY April -March
"QTD",eomonth(_max,-1* if( mod(Month(_max),3) =0,3,Month(_max)))+1,
"MTD",eomonth(_max,-1)+1 ,
BLANK())
return
CALCULATE(Sum(Sales[Sales[Amount]),DATESBETWEEN('Date'[Date],_min,_max))