Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi Team
I am trying to build dynamic market share based on user selected dimensions I need last selected dimension in my formula :
Num( Sum({<New_Flag_YTD = {1},MonthNumber = { $(=$(vMaxMonth))}>} Sales_Dollars)
/Sum(Total <$(=getobjectfield(max(Dimensionality()-2))> {<New_Flag_YTD = {1},MonthNumber = { $(=$(vMaxMonth))}>} Sales_Dollars),'##.##%')
How to achieve this any help highly appreciated.
Thanks in Advance.
Vikas
and with var vLastDim
SubField( $(=''''&
If(Len(GetObjectField(0)) > 0, ',' & GetObjectField(0))
& If(Len(GetObjectField(1)) > 0, ',' & GetObjectField(1))
& If(Len(GetObjectField(2)) > 0, ',' & GetObjectField(2))
& If(Len(GetObjectField(3)) > 0, ',' & GetObjectField(3))
& If(Len(GetObjectField(4)) > 0, ',' & GetObjectField(4))
& If(Len(GetObjectField(5)) > 0, ',' & GetObjectField(5))
& If(Len(GetObjectField(6)) > 0, ',' & GetObjectField(6))
& If(Len(GetObjectField(7)) > 0, ',' & GetObjectField(7))
& If(Len(GetObjectField(8)) > 0, ',' & GetObjectField(8))
& If(Len(GetObjectField(9)) > 0, ',' & GetObjectField(9))
&'''' ), ',', -1 )
Num( Sum({<New_Flag_YTD = {1},MonthNumber = { $(=$(vMaxMonth))}>} Sales_Dollars)
/Sum(Total <[$(=$(vLastDim))]> {<New_Flag_YTD = {1},MonthNumber = { $(=$(vMaxMonth))}>} Sales_Dollars),'##.##%')
Hi Vikas. The problem is that Dimensionality() does not correspond exactly to GetObjectField(). So if there are hidden dims GetObjectField counts them but returns empty values. Try this expression
=Pick(Max(Dimensionality())
$(=If(Len(GetObjectField(0)) > 0, ', ''' & GetObjectField(0) & '''')
& If(Len(GetObjectField(1)) > 0, ', ''' & GetObjectField(1) & '''')
& If(Len(GetObjectField(2)) > 0, ', ''' & GetObjectField(2) & '''')
& If(Len(GetObjectField(3)) > 0, ', ''' & GetObjectField(3) & '''')
& If(Len(GetObjectField(4)) > 0, ', ''' & GetObjectField(4) & '''')
// and so on up to NoOfDims
) )
Or wothout Dimensionality
=[$(=SubField( $(=''''&
If(Len(GetObjectField(0)) > 0, ',' & GetObjectField(0))
& If(Len(GetObjectField(1)) > 0, ',' & GetObjectField(1))
& If(Len(GetObjectField(2)) > 0, ',' & GetObjectField(2))
& If(Len(GetObjectField(3)) > 0, ',' & GetObjectField(3))
& If(Len(GetObjectField(4)) > 0, ',' & GetObjectField(4))
& If(Len(GetObjectField(5)) > 0, ',' & GetObjectField(5))
& If(Len(GetObjectField(6)) > 0,',' & GetObjectField(6))
&'''' ), ',', -1 ) )]
and with var vLastDim
SubField( $(=''''&
If(Len(GetObjectField(0)) > 0, ',' & GetObjectField(0))
& If(Len(GetObjectField(1)) > 0, ',' & GetObjectField(1))
& If(Len(GetObjectField(2)) > 0, ',' & GetObjectField(2))
& If(Len(GetObjectField(3)) > 0, ',' & GetObjectField(3))
& If(Len(GetObjectField(4)) > 0, ',' & GetObjectField(4))
& If(Len(GetObjectField(5)) > 0, ',' & GetObjectField(5))
& If(Len(GetObjectField(6)) > 0, ',' & GetObjectField(6))
& If(Len(GetObjectField(7)) > 0, ',' & GetObjectField(7))
& If(Len(GetObjectField(8)) > 0, ',' & GetObjectField(8))
& If(Len(GetObjectField(9)) > 0, ',' & GetObjectField(9))
&'''' ), ',', -1 )
Num( Sum({<New_Flag_YTD = {1},MonthNumber = { $(=$(vMaxMonth))}>} Sales_Dollars)
/Sum(Total <[$(=$(vLastDim))]> {<New_Flag_YTD = {1},MonthNumber = { $(=$(vMaxMonth))}>} Sales_Dollars),'##.##%')
Thanks for your solution let me try and mark as a accepted solution.
Many thanks
Vikas
Thank you so much Andrey this what exactly I was looking for!!
Vikas