# Textvariablen und numerische Variablen

Verwenden Sie in einem Ladeskript oder einer Diagrammformel eine Variable in einer Dollarzeichenerweiterung zu folgenden Zwecken:

* Text referenzieren

* Einen numerischen Wert referenzieren

## Textvariable

Wenn Sie zum Ersetzen von Text im Skript oder in einer Formel eine Variable verwenden, lautet die Syntax:

` $(variablename)
             `

`$(variablename)` nimmt den Wert der Variablen an. Existiert `variablename` nicht, ergibt sich ein leerer String.

## Beispiele: Textvariable – Ladeskripte

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansion-using-variable.htm)

#### Beispiel 1: Ladeskript

Ladeskript

Laden Sie die folgenden Daten als Inline-Ladevorgang in den Dateneditor:

```
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;
```

Weitere Informationen über Inline-Ladevorgänge finden Sie unter [Verwenden von Inline-Ladevorgängen zum Laden von Daten](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Erläuterung

Dieses Beispiel zeigt:

* Wie eine Variable in Variablenzuweisungen erweitert wird.

* Wie Variablen kombiniert mit Textoperationen erweitert werden.

Dies ist ein nützliches Setup für die Erstellung von dynamischen Beschriftungen und allgemeinen Textzeichenfolgen, die variablen Inhalt mit statischen Zeichenfolgen kombinieren.

Ausgabe

Erstellen Sie die folgende Tabelle in Qlik Sense:

Tabelle – Ausgabe aus dem Ladeskript

| X | Y | Z | NewString |
| --- | --- | --- | --- |
| rot | blau | rot-blau | rot-grün-blau |

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansion-using-variable.htm)

#### Beispiel 2: Ladeskript

Ladeskript

Laden Sie die folgenden Daten als Inline-Ladevorgang in den Dateneditor:

```
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 ];
```

Erläuterung

Die Befehle `Set` und `Let` werden verwendet, um Variablen im Ladeskript Werte zuzuweisen. Der Unterschied zwischen den beiden ist, dass der `Set`-Befehl eine Zeichenfolge zur Variablen zuweist, während der `Let`-Befehl den Inhalt der Zeichenfolge auswertet, bevor der Variablen der Ergebniswert zugewiesen wird. Die Inline-Ladetabelle in diesem Beispiel wird durch zwei vorangestellte load-Anweisungen ergänzt, die dazu dienen, verschiedene Auswertungen der Variablen `vEvaluate` zu visualisieren, sowohl als Textzeichenfolge als auch als die zugehörige Formel.

Ausgabe

Erstellen Sie die folgende Tabelle in Qlik Sense:

Tabelle – Ausgabe aus dem Ladeskript

| ID | String | Expression | Upper |
| --- | --- | --- | --- |
| 1 | abc | upper(String) | ABC |
| 2 | def | upper(String) | DEF |
| 3 | ghi | upper(String) | GHI |
| 4 | jkl | upper(String) | JKL |

## Beispiel: Textvariable – Diagrammformel

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansion-using-variable.htm)

#### Beispiel: Ladeskript

Ladeskript

Laden Sie die folgenden Daten als Inline-Ladevorgang in den Dateneditor:

```
// Create table SalesByCountry
SalesByCountry:
Load * Inline [
Country, Year, Sales
Argentina, 2014, 66295.03
Argentina, 2015, 140037.89
Austria, 2014, 54166.09
Austria, 2015, 182739.87
Belgium, 2014, 182766.87
Belgium, 2015, 178042.33
Brazil, 2014, 174492.67
Brazil, 2015, 2104.22
Canada, 2014, 101801.33
Canada, 2015, 40288.25
Denmark, 2014, 45273.25
Denmark, 2015, 106938.41
Finland, 2014, 107565.55
Finland, 2015, 30583.44
France, 2014, 115644.26
France, 2015, 30696.98
Germany, 2014, 8775.18
Germany, 2015, 77185.68
];
```

Variablen

Öffnen Sie auf einem Arbeitsblatt im Bearbeitungsmodus das Dialogfeld Variablen im Extras-Fenster.

Dialogfeld „Variablen“ öffnen

Dialogfeld „Variablen“ öffnen

Dialogfeld „Variablen“ öffnen ![KPIs mit Modifikatoren für Auswahlformeln.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_dollar_open_variable_dialog.png)

Erstellen Sie die folgenden Variablen:

Zu erstellende Variable

| Name | Definition |
| --- | --- |
| vSales | Sum(Sales) |
| vSales2014 | Sum({&lt;Year={2014}&gt;}Sales) |
| vSales2015 | Sum({&lt;Year={2015}&gt;} Sales) |
| vSalesAllYears | $(vSales2014) +$(vSales2015) |
| vSalesDifference | $(vSales2015)/$(vSales2014) - 1 |

Variablen

Variablen

Variablen ![KPIs mit Modifikatoren für Auswahlformeln.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_dollar_variables_window_new.png)

Erstellen Sie KPI-Diagramme, um die Erweiterungen anzuzeigen.

KPIs, die Dollarzeichenerweiterungen verwenden

KPIs, die Dollarzeichenerweiterungen verwenden

KPIs, die Dollarzeichenerweiterungen verwenden ![KPIs, die Dollarzeichenerweiterungen verwenden.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_dollar_kpis.png)

## Numerische Variablenerweiterung

Für numerische Variablen benutzen Sie folgende Syntax:

` (#variablename)
             `

Die Erweiterung liefert immer eine gültige Dezimalstellen-Repräsentation des numerischen Werts der Variable, u. U. in Exponentialschreibweise (bei sehr großen oder kleinen Zahlen). Sollte `variablename` nicht existieren oder keinen numerischen Wert enthalten, wird stattdessen auf 0 anstelle von NULL expandiert.

## Beispiele: Numerische Variable – Ladeskripte

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansion-using-variable.htm)

#### Beispiel 1: Ladeskript

Ladeskript

Laden Sie die folgenden Daten als Inline-Ladevorgang in den Dateneditor:

```
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'); 
```

Erläuterung

Die Erweiterung `#vVariable` liefert immer eine gültige Dezimalstellen-Repräsentation des numerischen Werts der Variablen. Das ist nützlich, wenn ein Komma anstelle eines Punktes als Dezimaltrennzeichen verwendet wird und die Gefahr eines Konflikts mit einer kommagetrennten Liste besteht.

Der Hauptgrund für die Erweiterung dieser Variablen in einer Inline-Ladetabelle besteht darin, dass keine zusätzlichen Anführungszeichen für `$(X)` erforderlich sind.

Ausgabe

Erstellen Sie die folgende Tabelle in Qlik Sense:

Tabelle – Ausgabe aus dem Ladeskript

| DecimalComma | DecimalPoint |
| --- | --- |
| 3,5 | 3.5 |

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansion-using-variable.htm)

#### Beispiel 2: Ladeskript

Ladeskript

Laden Sie die folgenden Daten als Inline-Ladevorgang in den Dateneditor:

```
// 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');
```

Erläuterung

Die Erweiterung #vVariable liefert immer eine gültige Dezimalstellen-Repräsentation des numerischen Werts der Variablen. Das ist nützlich, wenn ein Komma anstelle eines Punktes als Dezimaltrennzeichen verwendet wird und die Gefahr eines Konflikts mit einer kommagetrennten Liste besteht. Es ist auch wichtig zu beachten, dass die numerische Präzision betroffen ist, da der Dezimalteil abgeschnitten wird, wenn Variablen ohne korrektes Dezimaltrennzeichen erweitert werden.

Der Hauptgrund für die Erweiterung dieser Variablen in einer Inline-Ladetabelle besteht darin, dass keine zusätzlichen Anführungszeichen für $(X) erforderlich sind.

Ausgabe

Erstellen Sie die folgende Tabelle in Qlik Sense:

Tabelle – Ausgabe aus dem Ladeskript

| DecimalComma | DecimalPoint | FormattedNumber |
| --- | --- | --- |
| 44 470,00 | 44469.999305556 | 2021-09-18 23:59:00 |

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansion-using-variable.htm)

#### Beispiel 3: Ladeskript

Ladeskript

Laden Sie die folgenden Daten als Inline-Ladevorgang in den Dateneditor:

```
// 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
```

Erläuterung

Die Erweiterung #vVariable liefert immer eine gültige Dezimalstellen-Repräsentation des numerischen Werts der Variablen. Das ist nützlich, wenn ein Komma anstelle eines Punktes als Dezimaltrennzeichen verwendet wird und die Gefahr eines Konflikts mit einer kommagetrennten Liste besteht. Es ist auch wichtig zu beachten, dass die numerische Präzision betroffen ist, da der Dezimalteil abgeschnitten wird, wenn Variablen ohne korrektes Dezimaltrennzeichen erweitert werden.

Der Hauptgrund für die Erweiterung dieser Variablen in einer Inline-Ladetabelle besteht darin, dass keine zusätzlichen Anführungszeichen für $(X) erforderlich sind.

Ausgabe

Erstellen Sie die folgende Tabelle in Qlik Sense:

Tabelle – Ausgabe aus dem Ladeskript

| StartTime | StopTime |  |
| --- | --- | --- |
| 2021-03-23 12:34:56 | 2021-03-23 15:34:56 |  |

## Erweitern von Variablen, die alternative Zustände referenzieren

Die Variable hat nur einen Wert, und dieser wird in allen alternativen Zuständen verwendet. Wenn Sie eine Variable erweitern, ist der Wert ebenfalls derselbe, unabhängig davon, wo er erstellt wird und in welchen Zustand sich das Objekt befindet.

Wenn die Variable eine berechnete Variable ist, wenn die Definition also mit einem Gleichheitszeichen beginnt, dann erfolgt die Berechnung im Standardzustand, es sei denn, Sie geben in der Variablendefinition einen alternativen Zustand an.

Beispiel: Wenn Sie einen Zustand mit dem Namen MyState und eine Variable mit dem Namen vMyVar haben, gilt:

```
vMyvar: =only({MyState}MyField)
```

Der Inhalt der Variablendefinition, mit einem ausdrücklichen Verweis auf den Namen des alternativen Zustands, bestimmt, in welchem Zustand der Variableninhalt ausgewertet wird.

## Interaktion zwischen Variablen und äußeren Auswahlformeln

Wenn Sie eine Variable in einer Dollarzeichen-Erweiterung referenzieren, die auch eine äußere Auswahlformel enthält, gilt eine bestimmte Auswertungsreihenfolge. Details finden Sie unter [Variablen-Lookup](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/outer-set-expression-dollar-sign-expansion.htm#Variable).

## Weitere Informationen

* [Let](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Let.htm)

* [Set](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Set.htm)

* [Arbeiten mit Variablen im Dateneditor](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/work-with-variables-in-data-load-editor.htm)