Skip to main content Skip to complementary content

Working with variables in the data load editor

A variable in Qlik Sense is a named entity, containing a single data value. A variable typically acquires its value from a Let, Set or other control statement. The value of a variable can normally be changed by the user at any time. Variables can contain numeric or alphanumeric data.

If the first character of a variable value is an equals sign ' = ' Qlik Sense will try to evaluate the value as a formula (Qlik Sense expression) and then display or return the result rather than the actual formula text.

When used, the variable is substituted by its value. Variables can be used in the script for dollar sign expansion and in various control statements. This is very useful if the same string is repeated many times in the script, for example, a path.

Some special system variables will be set by Qlik Sense at the start of the script execution regardless of their previous values.

When defining a variable, the syntax:

set variablename = string

or

let variable = expression

is used. The Set command assigns the text to the right of the equal sign to the variable, whereas the Let command evaluates the expression.

Variables are case sensitive.

Examples:  

set HidePrefix = $ ; // the variable will get the character ‘$’ as value.

let vToday = Num(Today()); // returns the date serial number of today.

Variable calculation

There are several ways to use variables with calculated values in Qlik Sense, and the result depends on how you define it and how you call it in an expression.

In this example we load some inline data:

LOAD * INLINE [ Dim, Sales A, 150 A, 200 B, 240 B, 230 C, 410 C, 330 ];

Let's define two variables:

Let vSales = 'Sum(Sales)' ;
Let vSales2 = '=Sum(Sales)' ;

In the second variable, we add an equal sign before the expression. This will cause the variable to be calculated before it is expanded and the expression is evaluated.

If you use the vSales variable as it is, for example in a measure, the result will be the string Sum(Sales), that is, no calculation is performed.

If you add a dollar-sign expansion and call $(vSales) in the expression, the variable is expanded, and the sum of Sales is displayed.

Finally, if you call $(vSales2), the variable will be calculated before it is expanded. This means that the result displayed is the total sum of Sales. The difference between using =$(vSales) and =$(vSales2) as measure expressions is seen in this chart showing the results:

Dim $(vSales) $(vSales2)
A 350 1560
B 470 1560
C 740 1560

As you can see, $(vSales) results in the partial sum for a dimension value, while $(vSales2) results in the total sum.

Did this page help you?

If you find any issues with this page or its content – a typo, a missing step, or a technical error – let us know how we can improve!