Espansione con simbolo del dollaro con una variabile
Nello script di caricamento o in un'espressione del grafico, utilizzare una variabile in un'espansione con simbolo del dollaro per:
Testo di riferimento
Riferimento a un valore numero
Variabile di testo
Quando si utilizza una variabile per effettuare una sostituzione di testo nello script o in un'espressione, viene utilizzata la sintassi seguente:
$(variablename)
$(variablename) si espande nel valore contenuto nella variabile. Se variablename non esiste, l'espansione sarà una stringa vuota.
Esempi: script di caricamento variabile di testo
Script di caricamento
Caricare i dati seguenti come un caricamento inline nell'editor caricamento dati.
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;
Come espandere una variabile in assegnazioni variabili.
Come espandere variabili combinate con operazioni testuali.
Si tratta di una configurazione utile per creare etichette dinamiche e stringhe di testo generali che combinano un contenuto variabile con stringhe statiche.
Output
Crea la seguente tabella in Qlik Sense:
Tabella - Output dallo script di caricamento
X
Y
Z
NewString
red
blue
red blue
red blue green
Script di caricamento
Caricare i dati seguenti come un caricamento inline nell'editor caricamento dati.
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 ];
Spiegazione
Le istruzioni Set e Let sono utilizzate per assegnare valori a variabili nello script di caricamento. La differenza tra i due sta nel fatto che l'istruzione Set assegna una stringa alla variabile, mentre l'istruzione Let valuta il contenuto della stringa prima di valutare il valore risultante nella variabile. La tabella inline di caricamento in questo esempio viene integrata con due istruzioni di caricamento precedenti utilizzate per visualizzare varie valutazioni della variabile vEvaluate sia come stringa di testo sia come espressione corrispondente.
Output
Crea la seguente tabella in Qlik Sense:
Tabella - Output dallo script di caricamento
ID
String
Expression
Upper
1
abc
upper(String)
ABC
2
def
upper(String)
DEF
3
ghi
upper(String)
HIJ
4
jkl
upper(String)
JKL
Esempio: espressione del grafico della variabile di testo
Script di caricamento
Caricare i dati seguenti come un caricamento inline nell'editor caricamento dati.
In un foglio in modalità modifica, aprire la finestra di dialogo Variabili dal pannello Risorse.
Creare le seguenti variabili:
Variabile da creare
Nome
Definizione
vSales
Sum(Sales)
vSales2014
Sum({<Year={2014}>}Sales)
vSales2015
Sum({<Year={2015}>} Sales)
vSalesAllYears
$(vSales2014) +$(vSales2015)
vSalesDifference
$(vSales2015)/$(vSales2014) - 1
Creare grafici KPI per visualizzare le espansioni.
Espansione della variabile numerica
Per espansioni di variabili numeriche, è necessario utilizzare la seguente sintassi:
(#variablename)
L'espansione restituisce sempre una rappresentazione con punto decimale valida del valore numerico della variabile, se necessario con notazione esponenziale (per numeri molto grandi o piccoli). Se variablename non esiste o non contiene un valore numerico, verrà espansa a 0 invece che a NULL.
Esempi: script di caricamento variabile numerica
Script di caricamento
Caricare i dati seguenti come un caricamento inline nell'editor caricamento dati.
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');
Spiegazione
L'espansione #vVariable restituisce sempre una rappresentazione con punto decimale valida del valore numerico della variabile. Ciò risulta utile quando la virgola, piuttosto che il punto, viene utilizzata come separatore decimale e sussiste il rischio di un conflitto con elenchi separati da virgole.
Il motivo principale per espandere queste variabili in una tabella inline di caricamento è che non è richiesta alcuna citazione aggiuntiva di $(X).
Output
Crea la seguente tabella in Qlik Sense:
Tabella - Output dallo script di caricamento
DecimalComma
DecimalPoint
3,5
3.5
Script di caricamento
Caricare i dati seguenti come un caricamento inline nell'editor caricamento dati.
// 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');
Spiegazione
L'espansione #vVariable restituisce sempre una rappresentazione con punto decimale valida del valore numerico della variabile. Ciò risulta utile quando la virgola, piuttosto che il punto, viene utilizzata come separatore decimale e sussiste il rischio di un conflitto con elenchi separati da virgole. È anche molto importante notare che la precisione numerica verrà interessata a causa del troncamento della parte decimale quando le variabili vengono espanse senza un corretto separatore decimale.
Il motivo principale per espandere queste variabili in una tabella inline di caricamento è che non è richiesta alcuna citazione aggiuntiva di $(X).
Output
Crea la seguente tabella in Qlik Sense:
Tabella - Output dallo script di caricamento
DecimalComma
DecimalPoint
FormattedNumber
44 470,00
44469.999305556
2021-09-18 23:59:00
Script di caricamento
Caricare i dati seguenti come un caricamento inline nell'editor caricamento dati.
// 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
Spiegazione
L'espansione #vVariable restituisce sempre una rappresentazione con punto decimale valida del valore numerico della variabile. Ciò risulta utile quando la virgola, piuttosto che il punto, viene utilizzata come separatore decimale e sussiste il rischio di un conflitto con elenchi separati da virgole. È anche molto importante notare che la precisione numerica verrà interessata a causa del troncamento della parte decimale quando le variabili vengono espanse senza un corretto separatore decimale.
Il motivo principale per espandere queste variabili in una tabella inline di caricamento è che non è richiesta alcuna citazione aggiuntiva di $(X).
Output
Crea la seguente tabella in Qlik Sense:
Tabella - Output dallo script di caricamento
StartTime
StopTime
2021-03-23 12:34:56
2021-03-23 15:34:56
Espansione di variabili con riferimento a stati alternati
La variabile ha solo un valore, che viene utilizzato in tutti gli stati alternati. Quando si espande una variabile, anche il valore è lo stesso, indipendentemente da dove viene effettuato, e dallo stato dell'oggetto.
Se la variabile è una variabile calcolata, ovvero la definizione inizia con un segno di uguale, il calcolo viene effettuato nello stato predefinito, a meno che non venga specificato uno stato alternato nella definizione della variabile.
Ad esempio, se si dispone di uno stato con nome MyState e di una variabile con nome vMyVar:
vMyvar: =only({MyState}MyField)
Il contenuto della definizione della variabile, con un riferimento esplicito al nome stato alternato, determina in quale stato verrà valutato il contenuto della variabile.
Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!