# Rozszerzenie przez znak dolara przy użyciu zmiennej

W skrypcie ładowania lub wyrażeniu wykresu użyj zmiennej w rozszerzeniu przez znak dolara, aby:

* Odwołać się do tekstu

* Odwołać się do wartości liczbowej

## Zmienna tekstowa

Gdy w celu zastąpienia tekstu w skrypcie lub w wyrażeniu używana jest zmienna, używana jest następująca składnia:

` $(variablename)
             `

`$(variablename)` powoduje rozwinięcie do wartości w zmiennej. Jeśli `variablename` nie istnieje, wówczas wynikiem rozwinięcia będzie pusty ciąg znaków.

## Przykłady: skrypty ładowania ze zmiennymi tekstowymi

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

#### Przykład 1: skrypt ładowania

Skrypt ładowania

Załaduj następujące dane jako ładowanie wbudowane w edytorze ładowania danych:

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

Aby uzyskać więcej informacji o ładowaniu wbudowanym, zobacz temat [Używanie wbudowanych ładowań do ładowania danych](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Objaśnienie

Ten przykład pokazuje:

* Jak rozszerzyć zmienną w przypisaniach zmiennych.

* Jak rozszerzyć zmienne połączone z operacjami tekstowymi.

Jest to przydatna konfiguracja do tworzenia etykiet dynamicznych i ogólnych ciągów tekstowych, które łączą zmienną zawartość z ciągami statycznymi.

Dane wyjściowe

Utwórz następującą tabelę w Qlik Sense:

Tabela — dane wyjściowe ze skryptu ładowania

| X | Y | Z | NewString |
| --- | --- | --- | --- |
| red | Blue | red blue | red green blue |

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

#### Przykład 2: skrypt ładowania

Skrypt ładowania

Załaduj następujące dane jako ładowanie wbudowane w edytorze ładowania danych:

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

Objaśnienie

Instrukcje `Set` i `Let` służą do przypisywania wartości do zmiennych w skrypcie ładowania. Różnica między nimi polega na tym, że instrukcja `Set` przypisuje ciąg do zmiennej, podczas gdy instrukcja `Let` ocenia zawartość ciągu przed przypisaniem wartości wynikowej do zmiennej. Ładowana tabela wbudowana w tym przykładzie jest uzupełniona dwiema poprzedzającymi ją instrukcjami load, które służą do wizualizacji różnych ocen zmiennej `vEvaluate` zarówno jako ciągu tekstowego, jak i jako odpowiadającego mu wyrażenia.

Dane wyjściowe

Utwórz następującą tabelę w Qlik Sense:

Tabela — dane wyjściowe ze skryptu ładowania

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

## Przykład: zmienna tekstowa — wyrażenie wykresu

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

#### Przykład: skrypt ładowania

Skrypt ładowania

Załaduj następujące dane jako ładowanie wbudowane w edytorze ładowania danych:

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

zmienne

W arkuszu w trybie edycji otwórz okno dialogowe Zmienne z panelu Zasoby.

Okno otwierania zmiennych

Okno otwierania zmiennych

Okno otwierania zmiennych ![KPI z wykorzystaniem modyfikatorów zestawu.](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/ui_gen_dollar_open_variable_dialog.png)

Utwórz następujące zmienne:

Zmienna do utworzenia

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

zmienne

zmienne

zmienne ![KPI z wykorzystaniem modyfikatorów zestawu.](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/ui_gen_dollar_variables_window_new.png)

Utwórz wykresy KPI, aby zobaczyć rozszerzenia.

KPI z rozszerzeniami przez znak dolara

KPI z rozszerzeniami przez znak dolara

KPI z rozszerzeniami przez znak dolara ![KPI z rozszerzeniami przez znak dolara.](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/ui_gen_dollar_kpis.png)

## Rozszerzenie zmiennej liczbowej

W celu rozwinięcia zmiennej numerycznej używana jest następująca składnia:

` (#variablename)
             `

Rozszerzenie zawsze daje poprawną dziesiętną reprezentację wartości liczbowej zmiennej, ewentualnie z notacją wykładniczą (dla bardzo dużych lub małych liczb). Jeśli `variablename` nie istnieje lub nie zawiera wartości liczbowej, zostanie rozszerzone do 0 zamiast NULL.

## Przykłady: skrypty ładowania ze zmiennymi liczbowymi

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

#### Przykład 1: skrypt ładowania

Skrypt ładowania

Załaduj następujące dane jako ładowanie wbudowane w edytorze ładowania danych:

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

Objaśnienie

Rozszerzenie `#vVariable` zawsze daje poprawną dziesiętną reprezentację wartości liczbowej zmiennej. Jest to przydatne, gdy jako separatora dziesiętnego używa się przecinka, a nie kropki i istnieje ryzyko konfliktu z listami rozdzielanymi przecinkami.

Głównym powodem rozszerzenia tych zmiennych w ładowanej tabeli wbudowanej jest to, że nie jest wymagane dodatkowe ujmowanie `$(X)` w cudzysłów.

Dane wyjściowe

Utwórz następującą tabelę w Qlik Sense:

Tabela — dane wyjściowe ze skryptu ładowania

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

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

#### Przykład 2: skrypt ładowania

Skrypt ładowania

Załaduj następujące dane jako ładowanie wbudowane w edytorze ładowania danych:

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

Objaśnienie

Rozszerzenie #vVariable zawsze daje poprawną dziesiętną reprezentację wartości liczbowej zmiennej. Jest to przydatne, gdy jako separatora dziesiętnego używa się przecinka, a nie kropki i istnieje ryzyko konfliktu z listami rozdzielanymi przecinkami. Należy także pamiętać, że wpłynie to na dokładność liczbową ze względu na obcięcie części dziesiętnej, gdy zmienne zostaną rozszerzone bez prawidłowego separatora dziesiętnego.

Głównym powodem rozszerzenia tych zmiennych w ładowanej tabeli wbudowanej jest to, że nie jest wymagane dodatkowe ujmowanie $(X) w cudzysłów.

Dane wyjściowe

Utwórz następującą tabelę w Qlik Sense:

Tabela — dane wyjściowe ze skryptu ładowania

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

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

#### Przykład 3: skrypt ładowania

Skrypt ładowania

Załaduj następujące dane jako ładowanie wbudowane w edytorze ładowania danych:

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

Objaśnienie

Rozszerzenie #vVariable zawsze daje poprawną dziesiętną reprezentację wartości liczbowej zmiennej. Jest to przydatne, gdy jako separatora dziesiętnego używa się przecinka, a nie kropki i istnieje ryzyko konfliktu z listami rozdzielanymi przecinkami. Należy także pamiętać, że wpłynie to na dokładność liczbową ze względu na obcięcie części dziesiętnej, gdy zmienne zostaną rozszerzone bez prawidłowego separatora dziesiętnego.

Głównym powodem rozszerzenia tych zmiennych w ładowanej tabeli wbudowanej jest to, że nie jest wymagane dodatkowe ujmowanie $(X) w cudzysłów.

Dane wyjściowe

Utwórz następującą tabelę w Qlik Sense:

Tabela — dane wyjściowe ze skryptu ładowania

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

## Rozszerzanie zmiennych odwołujących się do stanów alternatywnych

Zmienna ma tylko jedną wartość i jest używana we wszystkich stanach alternatywnych. Kiedy rozszerzasz zmienną, wartość jest również taka sama, niezależnie od tego, gdzie została utworzona, i od stanu obiektu.

Jeśli zmienna jest zmienną obliczaną, to znaczy definicja zaczyna się od znaku równości, obliczenia są wykonywane w stanie domyślnym, chyba że określisz stan alternatywny w definicji zmiennej.

Jeżeli na przykład istnieje stan o nazwie MyState i zmienna o nazwie vMyVar:

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

Treść definicji zmiennej, z wyraźnym odniesieniem do nazwy alternatywnego stanu, określa, w jakim stanie będzie oceniana zawartość zmiennej.

## Interakcje między zmiennymi a zewnętrznymi wyrażeniami zestawu

Kiedy odwołujesz się do zmiennej w rozwinięciu przez znak dolara, które zawiera również zewnętrzne wyrażenie zestawu, stosowana jest określona kolejność oceny. Szczegółowe informacje zawiera temat [Wyszukiwanie zmiennych](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/outer-set-expression-dollar-sign-expansion.htm#Variable).

## Dowiedz się więcej

* [Let](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Let.htm)

* [Set](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Set.htm)

* [Praca ze zmiennymi w edytorze ładowania danych](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/work-with-variables-in-data-load-editor.htm)