No script de carregamento ou em uma expressão de gráfico, use uma variável em uma expansão de sinal de dólar para:
Fazer referência a um texto
Fazer referência a um valor numérico
Variável de texto
Ao utilizar uma variável para a substituição de texto no script ou em uma expressão, é usada a seguinte sintaxe:
$(variablename)
$(variablename) expande para o valor na variável. Se variablename não existir, a expansão resultará em uma string vazia.
Exemplos: Scripts de carregamento de variáveis de texto
Script de carregamento
Carregue os seguintes dados como um carregamento inline no editor de carregamento de dados:
Set x = 'red'; // Assign the value "red" to variable x
Set y = 'blue'; // Assign the value "blue" to variable y
Set z = '$(x) $(y)'; // Expands x and y, returns "red blue" in variable z
// Expand x and y, return "red green blue" in variable MyString
Let MyString='$(x)'&' green '&'$(y)';
// Create table MyTable, load variable values for x, y, z into fields X, Y, Z
// Concatenate with variable MyString into field NewString
MyTable:
Load '$(x)' as X, '$(y)' as Y, '$(z)' as Z, '$(MyString)' as NewString autogenerate 1;
Para obter mais informações sobre como usar carregamentos inline, consulte Carregamentos inline.
Explicação
Esse exemplo demonstra:
Como expandir uma variável em atribuições de variáveis.
Como expandir variáveis combinadas com operações textuais.
Essa é uma configuração útil para criar rótulos dinâmicos e sequências de caracteres de texto geral que combinam um conteúdo de variável com sequências de caracteres estáticas.
Saída
Crie a seguinte tabela no Qlik Sense:
Tabela - Saída do script de carregamento
X
Y
Z
NewString
red
blue
red blue
red blue green
Script de carregamento
Carregue os seguintes dados como um carregamento inline no editor de carregamento de dados:
Set vFunction = 'upper'; // Assign the string “upper” to variable vFunction
Set vField = 'String'; // Assign the string "String" to variable vField
Let vEvaluate = '$(vFunction)'&'('&'$(vField)'&')';
// The variable vEvaluate returns the value "upper(string)"
MyTable: // Create table called MyTable
Load *, $(vEvaluate) as Upper; // vEvaluate expanded as a dynamic expression
Load *, '$(vEvaluate)' as Expression; // vEvaluate expanded as string
Load * inline [
ID, String
1, abc
2, def
3, ghi
4, jkl ];
Explicação
As instruções Set e Let são usadas para atribuir valores a variáveis no script de carregamento. A diferença entre os dois é que a instrução Set atribui uma string à variável, enquanto a instrução Let avalia o conteúdo da sequência de caracteres antes de atribuir o valor resultante à variável. A tabela inline de carregamento neste exemplo é complementada com duas instruções de carregamento anteriores que são usadas para visualizar diferentes avaliações da variável vEvaluate, tanto como uma sequência de caracteres de texto quanto como a expressão correspondente.
Saída
Crie a seguinte tabela no Qlik Sense:
Tabela - Saída do script de carregamento
ID
String
Expression
Upper
1
abc
upper(String)
ABC
2
def
upper(String)
DEF
3
ghi
upper(String)
HIJ
4
jkl
upper(String)
JKL
Exemplo: Expressão de gráfico de variável de texto
Script de carregamento
Carregue os seguintes dados como um carregamento inline no editor de carregamento de dados:
Em uma página no modo de edição, abra o diálogo Variáveis no painel Ativos.
Crie as seguintes variáveis:
Variável para criar
Nome
Definição
vSales
Sum(Sales)
vSales2014
Sum({<Year={2014}>}Sales)
vSales2015
Sum({<Year={2015}>} Sales)
vSalesAllYears
$(vSales2014) +$(vSales2015)
vSalesDifference
$(vSales2015)/$(vSales2014) - 1
Crie gráficos de KPI para ver as expansões.
Expansão de variável numérica
Para expansões variáveis numéricas, use a seguinte sintaxe:
(#variablename)
A expansão sempre gera uma representação de ponto decimal válido do valor numérico da variável, possivelmente com notação exponencial (para números muito grandes/pequenos). Se variablename não existir ou não contiver um valor numérico, ela será expandida para 0 em vez de NULL.
Exemplos: Scripts de carregamento de variáveis numéricas
Script de carregamento
Carregue os seguintes dados como um carregamento inline no editor de carregamento de dados:
Set DecimalSep = ','; // Set decimal comma as separator for this example.
Let X = 7/2; // Assign the expression 7/2 to variable X.
MyTable: // Create an inline table labeled “MyTable”
Load 1 as ID, * inline [
DecimalComma DecimalPoint
$(X) $(#X) ]
(delimiter is '\t');
Explicação
A expansão #vVariable sempre gera uma representação de ponto decimal válido do valor numérico da variável, possivelmente com notação exponencial. Isso é útil quando a vírgula, em vez do ponto final, é usada como separador decimal e há riscos de conflito com listas separadas por vírgulas.
A principal razão para expandir essas variáveis em uma tabela inline de carregamento é que nenhuma citação adicional de $(X) é necessária.
Saída
Crie a seguinte tabela no Qlik Sense:
Tabela - Saída do script de carregamento
DecimalComma
DecimalPoint
3,5
3.5
Script de carregamento
Carregue os seguintes dados como um carregamento inline no editor de carregamento de dados:
// The three Set statements below are required to mimic and initialize
// Format specifiers that are relevant to this particular example
Set ThousandSep=' '; // Set example thousand separator
Set DecimalSep=','; // Set example decimal separator
Set TimestampFormat='YYYY-MM-DD hh:mm:ss'; // Set example date format
Let vRaw = today()-1/1440; // Timestamp minus one minute
Let vFormat = timestamp($(#vRaw)); // Formatted as timestamp
// Create MyTable as an inline table to expand variables as field values
MyTable:
Load * inline [
DecimalComma DecimalPoint FormattedNumber
$(vRaw) $(#vRaw) $(vFormat) ] (delimiter is '\t');
Explicação
A expansão #vVariable sempre gera uma representação de ponto decimal válido do valor numérico da variável, possivelmente com notação exponencial. Isso é útil quando a vírgula, em vez do ponto final, é usada como separador decimal e há riscos de conflito com listas separadas por vírgulas. Também é importante notar que a precisão numérica será afetada devido ao truncamento da parte decimal quando as variáveis são expandidas sem o separador decimal correto.
A principal razão para expandir essas variáveis em uma tabela inline de carregamento é que nenhuma citação adicional de $(X) é necessária.
Saída
Crie a seguinte tabela no Qlik Sense:
Tabela - Saída do script de carregamento
DecimalComma
DecimalPoint
FormattedNumber
44 470,00
44469.999305556
2021-09-18 23:59:00
Script de carregamento
Carregue os seguintes dados como um carregamento inline no editor de carregamento de dados:
// The three Set statements below are required to mimic and initialize
// format specifiers that are relevant to this particular example
Set ThousandSep=' '; // Set example thousand separator
Set DecimalSep=','; // Set example decimal separator
Set TimestampFormat='YYYY-MM-DD hh:mm:ss'; // Set example date format
// Assign a numerical value and a valid format specifier to vStart
Let vStart = timestamp#('2021-03-23 12:34:56','$(TimestampFormat)');
// Calculate timestamp (vStart + 3 hours) with valid decimal separator: "."
Let vStop = timestamp($(#vStart)+1/8,'YYYY-MM-DD hh:mm:ss');
// Create MyTable as an inline table to expand variables as field values
MyTable:
Load * inline [
StartTime StopTime
$(vStart) $(vStop) ] (delimiter is '\t');
// This is a tab delimited inline table
// Tab delimited tables are useful for avoiding conflicting list separators
Explicação
A expansão #vVariable sempre gera uma representação de ponto decimal válido do valor numérico da variável, possivelmente com notação exponencial. Isso é útil quando a vírgula, em vez do ponto final, é usada como separador decimal e há riscos de conflito com listas separadas por vírgulas. Também é importante notar que a precisão numérica será afetada devido ao truncamento da parte decimal quando as variáveis são expandidas sem o separador decimal correto.
A principal razão para expandir essas variáveis em uma tabela inline de carregamento é que nenhuma citação adicional de $(X) é necessária.
Saída
Crie a seguinte tabela no Qlik Sense:
Tabela - Saída do script de carregamento
StartTime
StopTime
2021-03-23 12:34:56
2021-03-23 15:34:56
Expandindo variáveis que fazem referência a estados alternados
A variável tem apenas um valor, e esse é usado em todos os estados alternados. Quando você expande uma variável, o valor também é o mesmo, independente de onde a expansão é feita e do estado do objeto.
Se a variável for uma variável calculada, ou seja, a definição começa com um sinal de igual, o cálculo será feito no estado padrão, a menos que você especifique um estado alternado na definição da variável.
Por exemplo, se você tem um estado chamado MyState e uma variável chamada vMyVar:
vMyvar: =only({MyState}MyField)
O conteúdo da definição da variável, com uma referência explícita ao nome do estado alternado, determina em que estado o conteúdo da variável será avaliado.
Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!