Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
What is the Synthetic Dimension ??
It's a dimension not based on fields stored in your data model.
You can use valuelist() / valueloop() functions to create a synthetic dimension:
ValueList (value {, value })
Returns a set of listed values which, when used in a calculated dimension, will form a synthetic dimension. In charts with a synthetic dimension created with the valuelist function it is possible to reference the dimension value corresponding to a specific expression cell by restating the valuelist function with the same parameters in the chart expression. The function may of course be used anywhere in the layout, but apart from when used for synthetic dimensions it will only be meaningful inside an aggregation function.
Examples:
valuelist ( 1, 10, 100 )
valuelist ( 'a', 'xyz', 55 )
ValueLoop(from [, to [, step = 1 ]])
Returns a set of iterated values which, when used in a calculated dimension, will form a synthetic dimension. The values generated will start with the from value and end with the to value including intermediate values in increments of step. In charts with a synthetic dimension created with the valueloop function it is possible to reference the dimension value corresponding to a specific expression cell by restating the valueloop function with the same parameters in the chart expression. The function may of course be used anywhere in the layout, but apart from when used for synthetic dimensions it will only be meaningful inside an aggregation function.
Examples:
valueloop ( 1, 3 ) returns the values 1, 2 and 3
valueloop ( 1, 5, 2 ) returns the values 1, 3 and 5
valueloop ( 11 ) returns the value 11
Can you provide some scenarios where you would use a synthetic dimension and how to create the dimension?
There are several scenarios where you can use it based on your requirement. For example, if I have some data that i need to showcase such as null% and non-null data present in a field for data hygiene analysis and you want to showcase it in a piechart. As you know that piechart needs a dimension to show measure, but there is no dimension corresponding to that and if you take any other dimension like year you are showcasing the data as a share of the whole years, which is not the required presentation
So for that I would need to create a synthetic dimension using valuelist, which is nothing but a dummy field Like valuelist('Null', 'Non-Null'). After that you use that field in the measure, like;
if (ValueList('Null', 'Non-Null')='Day', nullCount(Country), if (ValueList('Null', 'Non-Null')='Night', Total (country) -Count(Country)))
This would give you the required presentation. Also, there are multiple other usecases as well, when you don't need or have the actual dimension but you wanna create a chart that has a requirement of dimension to show case the data.
Hope it helps!!
What are the Fields in you example? It all looks like text values.
Where is the actual Dimension in This?
The best part about valuelist usage is that there is no actual dimension, we are just trying to compute that data on the dimension in measure, without using the dimension in the dimension column. When you want to do the measure for the dimension instead of using another field for calculating measure.
Let me share you the qvf for the snap I shared above.
@ wrote:
What is the Synthetic Dimension ??
I appreciate the information and advice you have shared. I will try to figure it out for more..