For example, create a calculated dimension in a straight table:
Then, an expression like
You'll get a dimension with two value, KPI1 and KPI2. To check in your expression, which is the current dimension value, you'll need to repeat the Valuelist() function as used in the dimension again in the expression. (Above can also be written as
=if( ValueList('KPI1','KPI2') = 'KPI1', sum(FIELD),
if( ValueList('KPI1','KPI2') = 'KPI2', count(FIELD) ))
So you can create a dimension on the fly in a chart which is not based on a field in your data model (I think that's why its called synthetic).
Valuelist() just uses the values you are listing as arguments, valueloop creates the dimension values based on start, end and step values.