Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
 
					
				
		
 kicchu465
		
			kicchu465
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Hi all,
I Have a requirement to change the Number either to Billions/Million/Thousands based on the Measure.
I have tried as below:
SET vL.ScaleNumber =if($1>1000000000, num($1/1000000000,vL.Billion_Format)
 ,if($1>1000000, num($1/1000000,vL.Million_Format)
 ,if($1>1000, num($1/1000,vL.Thou_Format)
 ,if($1<0, num($1/1000,vL.Neg_Thou_Format)
 ,num($1,'#,##0',vL.Format_Integer)
 )))); 
In the Expression I have given as below:
$(vL.ScaleNumber(Sum({<[Product Family]*={'Rev Mobile Voice and Incoming','Rev Mobile Broadband','Rev Fixed Connectivity Access','Rev M2M Services','Rev One Net'},[Customer Flag]={'1'}>}Measure)))
But the above logic is not working.When I have tried using one filter in the set analysis as below then it is working fine. when I am applying multiple filters it is not working.
$(vL.ScaleNumber(Sum({<[Customer Flag]={'1'}>}Measure)))
So how can I acheive this.
I can simple use If statements for converting the Number format dynamically but it would be if I can get this using the above solution.
Thanks
S k
 trdandamudi
		
			trdandamudi
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Go to Numbers Tab on your chart properties and look at the right side bottom. You can give the symbols for Millions and Billions.

 
					
				
		
 kicchu465
		
			kicchu465
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Hi Thirumala,
I have tried this but that doesn't give my desired result.
Thanks
 trdandamudi
		
			trdandamudi
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		When you say it is not working for multiple filters, Are you getting any error ?
Can you try the below expression and let me know what you are getting ?
$(vL.ScaleNumber(Sum({<[Product Family]={'Rev Mobile Voice and Incoming','Rev Mobile Broadband','Rev Fixed Connectivity Access','Rev M2M Services','Rev One Net'},[Customer Flag]={'1'}>}Measure)))
 trdandamudi
		
			trdandamudi
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		When you have multiple filters you will have the issue with the comma which is separating the filters. The below link will fix your issue. Give a try and hope this helps:
Comma problem (,) workaround for dollar sign expansion with parameters
 
					
				
		
 kicchu465
		
			kicchu465
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Hi,
I have gone through the thread mentioned above by you, But I couldn't able to apply the same logic in my expression.
it looks like I'm missing something.
 
					
				
		
 jonathandienst
		
			jonathandienst
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		If you convert the expression to an expression variable you may be able to solve the problem:
Define the expression variable (for example in the load script):
Set vExpr = Sum({<[Product Family]*={'Rev Mobile Voice and Incoming','Rev Mobile Broadband','Rev Fixed Connectivity Access','Rev M2M Services','Rev One Net'},[Customer Flag]={'1'}>}Measure));
Then use the expression variable
$(vL.ScaleNumber(vExpr))
 
					
				
		
 kicchu465
		
			kicchu465
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Thanks very much Dienst.
Let me check that and I'll get back to if I face any Issue.
Thanks
 
					
				
		
 marcus_sommer
		
			marcus_sommer
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Unfortunately your approach won't work as a global function because each comma within the parameter will be treated as a parameter-delimiter. This meant you will need to apply any logic to avoid the commas which is in many cases not easy to impossible.
If the calculation should be only done on a global level you could use a $-sign expansion like this one:
$(vL.ScaleNumber($(=Sum({<[Product Family]*={'Rev Mobile Voice and Incoming','Rev Mobile Broadband','Rev Fixed Connectivity Access','Rev M2M Services','Rev One Net'},[Customer Flag]={'1'}>}Measure))))
which is in principle the same like pre-calculating the value within a (LET) variable respectively with a beginning equal-sign "=". With SET or without the "=" the expression-string would be transferred into the variable and the comma-problem remained.
Nevertheless you could use it in this case if you changed the syntax within the set analysis to something like:
$(vL.ScaleNumber(Sum({<[Product Family]*={("Rev Mobile Voice and Incoming"|"Rev Mobile Broadband"|"Rev Fixed Connectivity Access"|"Rev M2M Services"|"Rev One Net")} > + < [Customer Flag]={'1'}>}Measure)))
- Marcus
