Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

What is the Synthetic Dimension ??

What is the Synthetic Dimension ??

7 Replies
swuehl
MVP
MVP

It's a dimension not based on fields stored in your data model.

You can use valuelist() / valueloop() functions to create a synthetic dimension:

Synthetic Dimension Functions


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

Spartan27215
Partner - Creator
Partner - Creator

Can you provide some scenarios where you would use a synthetic dimension and how to create the dimension?

deepanshuSh
Creator III
Creator III

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. 

Screenshot 2022-09-01 at 11.35.22 PM.png

 

Hope it helps!!

Trial and error is the key to get unexpected results.
Spartan27215
Partner - Creator
Partner - Creator

What are the Fields in you example? It all looks like text values.

Spartan27215
Partner - Creator
Partner - Creator

Where is the actual Dimension in This?

deepanshuSh
Creator III
Creator III

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. 

Trial and error is the key to get unexpected results.
Bigb58
Contributor II
Contributor II


@ wrote: 

What is the Synthetic Dimension ??


I appreciate the information and advice you have shared. I will try to figure it out for more..