# Evaluate Funkcja skryptu

Funkcja Evaluate() wyszukuje, czy wejściowy ciąg tekstowy może zostać oceniony jako poprawne wyrażenie Qlik Sense, i jeśli tak, zwraca wartość wyrażenia jako ciąg. Jeśli ciąg wejściowy nie jest poprawnym wyrażeniem, zostanie zwrócona wartość NULL.

Składnia:

Evaluate(expression\_text)

Typ zwracanych danych: wartość podwójna

Argumenty

| Argument | Opis |
| --- | --- |
| text | Ciąg znaków do oceny. |

InformacjaTej funkcji ciągu znaków nie można używać w wyrażeniach wykresu.

Przykład funkcji i wyniki

| Przykład funkcji | Wynik |
| --- | --- |
| `Evaluate( 5 * 8 )` | Zwraca wartość `40` |

## Przykład — podstawy Evaluate

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/Evaluate.htm)

#### Skrypt ładowania

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Jedno pole w tabeli danych o nazwie `ExpressionText`.

* Poprzedzający ładunek, który wykorzystuje funkcję `Evaluate` do oceny pola `ExpressionText` i zwrócenia dwóch nowych pól: `Evaluated` i `Evaluatedx4`.

Skrypt ładowania

```
Example:
Load
ExpressionText
, Evaluate(ExpressionText) as Evaluated
, Evaluate(ExpressionText)*4 as Evaluatedx4
;
Load * Inline
[ExpressionText
4
5+3
100/5
123*2
329-9
0123456789012345678
1234567890123456789
0123456.5512
0123456.5512479994578952364859346469
Today()
Bob
];
```

Wyniki

W tabeli są ładowane następujące pola:

* `ExpressionText`

* `Evaluated`

* `Evaluatedx4`

Results table

| ExpressionText | Evaluated | Evaluatedx4 |
| --- | --- | --- |
| 4 | 4 | 16 |
| 5+3 | 8 | 32 |
| 100/5 | 20 | 80 |
| 123\*2 | 246 | 984 |
| 329-9 | 320 | 1280 |
| 0123456789012345678 | 0123456789012345678 | 4.9382715604938e+17 |
| 1234567890123456789 | 1234567890123456789 | 4.9382715604938e+18 |
| 0123456.5512 | 0123456.5512 | 493826.2048 |
| 0123456.5512479994578952364859346469 | 0123456.5512479994578952364859346469 | 493826.204992 |
| Today() | 11/5/2024 | 182404 |
| Bob | - | - |

Wynik funkcji `Evaluate` zwraca wartości dla wszystkich ciągów `ExpressionText` z wyjątkiem ostatniego wiersza. Ciągu `Bob` nie można obliczyć, więc funkcja nie zwraca żadnej wartości — NULL. Wszystkie wiersze zostały obliczone, na przykład drugi wiersz dodaje `5` i `3`, aby zwrócić `8`. Niektóre z ciągów `ExpressionText` zwracają ciąg bez zmian, ponieważ ciąg jest już obliczany jako liczba. Na przykład, ciąg `0123456789012345678` ma wartość równą tej samej liczbie.

Mimo że Qlik Sense ma 14-cyfrowy limit precyzji dla wartości numerycznych, funkcja `Evaluate` oceniła 18-cyfrowe ciągi jako liczbę i zastosowała mnożenie w skrypcie. Jest to przydatne do obsługi bardzo dużych liczb w ramach skryptu.

## Przykład — zastosowanie Evaluate

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/Evaluate.htm)

#### Skrypt ładowania

Przegląd

Zestaw danych sprzedaży zawiera produkty, ceny i rabaty. Ten przykład wyprowadza cenę ze zniżką dla produktów.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Tabela zawiera następujące pola:

  * `Product`

  * `Price`

  * `Discount %`

* Poprzedzające obciążenie, które pobiera wartości `Price` i `Discount %` i oblicza dodatkowe pole o nazwie `DiscountedPrice`. To nowe pole wykorzystuje funkcję `Evaluate` do obliczenia ceny pomniejszonej o rabat.

Skrypt ładowania

```
Example:
LOAD
Product,
Price,
[Discount (%)],
Price * (1 - ​​Evaluate([Discount (%)] / 100)) AS DiscountedPrice
INLINE [
Product, Price, Discount (%)
Laptop, 1000, 15
Smartphone, 800, 10
Tablet, 600, 20
Headphones, 200, 5
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `Product`

* `Price`

* `Discount %`

* `DiscountedPrice`

Results table

| Product | Price | Discount % | DiscountedPrice |
| --- | --- | --- | --- |
| Headphones | 200 | 5 | 190 |
| Tablet | 600 | 20 | 480 |
| Smartphone | 800 | 10 | 720 |
| Laptop | 1000 | 15 | 850 |

Dane wyjściowe funkcji `Evaluate` pokazują, jak można używać funkcji do obliczania wartości.