# Praca ze zmiennymi w edytorze ładowania danych

Zmienna w aplikacji Qlik Sense to kontener, w którym przechowywana jest wartość statyczna lub obliczenie, na przykład wartość liczbowa lub alfanumeryczna. W przypadku użycia tej zmiennej w aplikacji, wszelkie dokonywane w niej zmiany zostaną zastosowane wszędzie tam, gdzie jest ona używana. Zmienne można definiować z użyciem podglądu zmiennych albo w skrypcie przy użyciu Edytora ładowania danych. Do ustawiania wartości zmiennej służą instrukcje Let i Set w skrypcie ładowania danych.

WskazówkaPraca ze zmiennymi aplikacji Qlik Sense możliwa jest również z podglądu zmiennych podczas edycji arkusza. [Korzystanie ze zmiennych w wyrażeniach](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Variables/work-with-variables.htm)



## Przegląd

Jeśli pierwszy znak wartości zmiennej będzie znakiem równości „=”, aplikacja Qlik Sense podejmie próbę obliczenia formuły (wyrażenia Qlik Sense) i wyświetlenia lub zwrócenia wyniku takiego obliczenia zamiast samej treści formuły.

W chwili użycia nazwa zmiennej jest zastępowana jej wartością. Zmiennych można używać w skrypcie na potrzeby rozszerzenia przez znak dolara i różnych instrukcji sterowania. Jest to szczególnie przydatne, gdy w wielu miejscach skryptu powtarza się ten sam ciąg znaków (np. ścieżka).

Niektóre specjalne zmienne systemowe są ustawiane przez aplikację Qlik Sense przy rozpoczęciu wykonywania skryptu niezależnie od ich wcześniejszych wartości.

## Definiowanie zmiennej

Zmienne umożliwiają przechowywanie wartości statycznych lub wyników obliczeń. Podczas definiowania zmiennej użyj następującej składni:

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/work-with-variables-in-data-load-editor.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/work-with-variables-in-data-load-editor.htm)set variablename = string

lub

let variable = expression

Instrukcja Set służy do przypisywania ciągów. Powoduje przypisanie zmiennej wartości tekstowej podanej na prawo od znaku równości. Instrukcja Let ocenia wyrażenie po prawej stronie znaku równości w czasie wykonywania skryptu i przypisuje wynik wyrażenia do zmiennej.

W nazwach zmiennych rozróżniana jest wielkość liter.

InformacjaNie zaleca się nadawania zmiennej nazwy takiej samej, jaką ma pole lub funkcja w programie Qlik Sense.

Przykłady:

`set x =  3 + 4; //` zmienna otrzyma ciąg „3 + 4” jako wartość.

`let x = 3 + 4; //` zwraca 7 jako wartość.

`set x = Today(); //` zwraca „Today()” jako wartość.

`let x = Today(); //` zwraca dzisiejszą datę jako wartość, na przykład „27.09.2021”.

### Nadawanie nazw zmiennym

Jako najlepszą praktykę warto rozważyć używanie standardowej konwencji nazewnictwa dla zmiennych tworzonych w aplikacji. Na przykład możesz zadbać o to, by wszystkie zmienne nazwy zaczynały się na v. Przykład: vTekstUżytkownika. Pomaga to w szybkim rozpoznawaniu zmiennych jako zmiennych oraz odróżnianiu ich od miar, pól i funkcji.

## Usuwanie zmiennej

Po usunięciu zmiennej ze skryptu i przeładowaniu danych zmienna pozostanie w aplikacji. Jeśli wymagane jest całkowite usunięcie zmiennej z aplikacji, należy również usunąć tę zmienną z okna dialogowego zmiennych.

Więcej informacji zawiera temat [Usuwanie zmiennej](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Variables/delete-variable-using-dialog.htm).

## Ładowanie wartości zmiennej jako wartości pola

Jeśli chcesz załadować wartość zmiennej jako wartość pola w instrukcji LOAD, a wynik rozszerzenia przez znak dolara jest tekstem, a nie jest liczbą ani wyrażeniem, wówczas wymagane jest umieszczenie rozwiniętej zmiennej w pojedynczych cudzysłowach.

Przykład:

W tym przykładzie do tabeli ładowana jest zmienna systemowa zawierająca listę błędów skryptu. Można zauważyć, że rozszerzenie zmiennej ScriptErrorCount w klauzuli If nie wymaga cudzysłowów, a rozszerzenie zmiennej ScriptErrorList wymaga cudzysłowów.

```
IF $(ScriptErrorCount) >= 1 THEN
   LOAD '$(ScriptErrorList)' AS Error AutoGenerate 1;
END IF
```

## Obliczanie zmiennej

Istnieje kilka sposobów używania zmiennych z obliczonymi wartościami w aplikacji Qlik Sense, a wynik zależy od sposobu ich określenia oraz wywoływania w wyrażeniu.

W tym przykładzie ładujemy dane wbudowane:

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

Zdefiniujmy dwie zmienne:

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

Let vSales2 = '=Sum(Sales)' ;

W drugiej zmiennej dodajemy znak równości przed wyrażeniem. Spowoduje to obliczenie zmiennej przed jej rozwinięciem i ocenę wyrażenia.

W przypadku użycia zmiennej vSales w niezmienionej postaci, na przykład w mierze, wynikiem będzie ciąg Sum(Sales), co oznacza, że obliczenie nie jest wykonywane.

W przypadku dodania rozszerzenia przez znak dolara i wywołania $(vSales) w wyrażeniu, zmienna zostaje rozwinięta i wyświetlana jest suma Sales.

Z kolei po wywołaniu $(vSales2) zmienna będzie obliczona przed rozwinięciem. Oznacza to, że wyświetlony wynik jest sumą całkowitą Sales. Różnica między użyciem =$(vSales) i =$(vSales2) jako wyrażeń miary jest widoczna w tym wykresie ukazującym wyniki.

Wyniki

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

Jak widać, $(vSales) daje w wyniku sumę częściową dotyczącą wartości wymiaru, natomiast $(vSales2) — sumę całkowitą.

Dostępne są następujące zmienne skryptu:

* [Zmienne błędu](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ErrorVariables/ErrorVariables.htm)
* [Zmienne interpretacji liczb](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/number-interpretation-variables.htm)
* [Zmienne systemowe](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/system-variables.htm)
* [Zmienne obsługi wartości](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ValueHandlingVariables/value-handling-variables.htm)

## Dowiedz się więcej

* [Rozszerzenia przez znak dolara](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansions.htm)
* [Korzystanie ze zmiennych w wyrażeniach](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Variables/work-with-variables.htm)