cancel
Showing results for 
Search instead for 
Did you mean: 

Using Member Formulas, how do I pull a different time other than current member?

kyle_tetschlag
Explorer
0 Kudos
297

I am trying to create Member Formulas for Days Payable Outstanding (DPO) and Days Sales Outstanding. The monthly calculation I can figure out by the following:

[ACCOUNT].[ZBSAP] / [ACCOUNT].[ZFACOSSTD]*30

[ZBSAREXCL] / [ZFANETSALES] / 30

The full year is where I need help. To fill in the the below equation, I can't figure out how to get the sum of month's EB AP. We use a period 13 so I can't take the balance as of 2017.TOTAL. I have to either use YTD for 2017.12 or 2017.TOTAL - 2017.13.

((Sum of the month's Ending Balance Accounts Payable - Trade) / 12) / ([ACCOUNT].[ZFACOSSTD] / 360)

I tried the equation below but didn't work:

IIF([TIME].CURRENTMEMBER.PROPERTIES("LEVEL")="YEAR",((-([TIME].CURRENTMEMBER.ID,[ACCOUNT].[ZBSAP]-[TIME].CURRENTMEMBER.PROPERTIES("YEAR")&".13",[ACCOUNT].[ZBSAP])/12)/([TIME].CURRENTMEMBER.ID,[ACCOUNT].[ZFACOSSTD]/360)),(-[TIME].CURRENTMEMBER.ID,[ACCOUNT].[ZBSAP]/[TIME].CURRENTMEMBER.ID,[ACCOUNT].[ZFACOSSTD]*30))

View Entire Topic
former_member186338
Active Contributor
0 Kudos

Use ClosingPeriod MDX function to get the value of the 13 month!

kyle_tetschlag
Explorer
0 Kudos

Not sure where I am off. The below gives me an error message

IIF([TIME].CURRENTMEMBER.PROPERTIES("LEVEL")="YEAR",((-[ZBSAP]-ClosingPeriod([TIME].CURRENTMEMBER),[ZBSAP])/12)/([ZFACOSSTD]/360)),(-[ZBSAP])/12/([ZFACOSSTD]*30)

former_member186338
Active Contributor
0 Kudos

"Not sure where I am off."

Have you read MDX function specification on Microsoft site? Must read if you want to play with MDX!

https://docs.microsoft.com/en-us/sql/mdx/closingperiod-mdx?view=sql-analysis-services-2017

former_member186338
Active Contributor
0 Kudos

Hint: Level is not optional if you specify member!

kyle_tetschlag
Explorer
0 Kudos

I tried taking out the member but that didn't work.

IIF([TIME].CURRENTMEMBER.PROPERTIES("LEVEL")="YEAR",((-[ZBSAP]-CLOSINGPERIOD(),[ZBSAP])/12)/([ZFACOSSTD]/360)),(-[ZBSAP])/12/([ZFACOSSTD]*30)

Then I tried finding the level to put in (LEVEL1, LEVEL2, LEVEL3, LEVEL01,LEVEL02,LEVEL03) and none worked.

IIF([TIME].CURRENTMEMBER.PROPERTIES("LEVEL")="YEAR",((-[ZBSAP]-CLOSINGPERIOD(

[TIME].CURRENTMEMBER,[TIME].[LEVEL02]),[ZBSAP])/12)/([ZFACOSSTD]/360)),(-[ZBSAP])/12/([ZFACOSSTD]*30)