# 指令碼變數

QlikView 中的變數是用於儲存靜態值或計算的容器，例如數值或英數字元值。在文件中使用變數時，對變數進行的任何變更都會套用至所有使用的變數。 使用指令碼編輯器在指令碼中定義變數，其中變數從載入指令碼中的 Let、Set 或其他控制陳述式中取得其值。

如果變數值的第一個字元為等號「=」，QlikView 會嘗試將值評估為公式 (QlikView 運算式)，然後顯示或傳回結果，而非傳回實際的公式文字。

使用時，變數值會替代其變數。變數可用於指令碼中以用作貨幣符號展開，也可用於各種控制陳述式中。如果相同的字串在指令碼中重複多次 (如路徑)，這就非常適用。

QlikView 會在指令碼執行的開端，設定某些特別的系統變數，而不論其先前的值為何。

定義變數時，會使用下列的語法：

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptVariables.htm)[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptVariables.htm)set variablename = string

or

let variable = expression

is used.Set 命令將文字指派給變數等號右側，然而 Let 命令會評估運算式。

變數會區分大小寫。

範例：

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptVariables.htm)`set   HidePrefix = $ ; //` 變數會取得字元 '$' 作為值。

`let   vToday = Num(Today()); //` 傳回今天的日期序號。

## 變數計算

有數種方法來搭配使用變數與 QlikView 中計算的值，結果取決於您如何定義它，以及您如何在運算式中呼叫它。

在此範例中，我們載入部分內嵌資料：

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

讓我們定義兩個變數：

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

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

在第二個變數中，我們在運算式之前新增等號。這將造成變數在展開之前予以計算，並評估運算式。

如果您按原樣使用 vSales 變數，例如在測量中，結果將是字串 Sum(Sales)，即不執行任何計算。

如果您新增貨幣符號展開，並在運算式中呼叫 $(vSales)，則會展開變數，並顯示 Sales 的總和。

最終，如果您呼叫 $(vSales2)，則在展開變數之前對其進行計算。這表示所顯示結果是 Sales 的總和加總。將 =$(vSales) 與 =$(vSales2) 用作測量運算式的差異顯示在此圖表中，顯示下列結果：

Example results

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

如您可以看到，$(vSales) 產生維度值的部分加總，而 $(vSales2) 產生總和加總。

## 瞭解更多資訊

* [貨幣符號展開](https://help.qlik.com/zh-TW/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/dollar-sign-expansions.htm)