# 在運算式中使用變數的範例

Qlik Sense 中的變數是具名的實體，包含一個資料值。在運算式中使用變數時，它會被其值或變數定義所取代。

## 在運算式中使用變數的方式

可以透過直接參考或貨幣符號展開兩種方式使用變數。若您使用直接參考，變數值將會用於計算。若您使用貨幣符號展開，則在剖析展開之前，變數值將會取代整個貨幣符號展開。因此，兩種不同的方法可能會傳回不同的結果。

### 範例：使用變數與貨幣符號展開

變數 x 包含文字字串 Sum(Sales)。

在圖表中，您定義了運算式 $(x)/12。它的作用和圖表運算式 Sum(Sales)/12 一樣。

然而，如果您將變數 x 的值變更為例如 Sum(Budget)，則會立即重新計算圖表中的資料，並將運算式解釋為 Sum(Budget)/12。

提示備註使用運算式中的變數時，您只需編輯變數，即可同步變更圖表範圍中使用的運算式。

### 範例：在樞紐分析表中使用貨幣符號展開的變數

假設您有包含以下內容的樞紐分析表或樞鈕物件：

* 維度為 Product Type 和 Product Name。

* 量值是 Sum(Sales) 和 Count (distinct InvoiceNumber)。

* 欄之下的項目是值 (預設) 和欄位 Quarter。

您可以使用變數鼓勵互動式分析。假設您也建立了具有空白定義的變數 vUserInteraction。然後，您在工作表上建立兩個按鈕圖表，並使用設定變數值動作進行設定：

* 顯示更多詳細資訊：按一下此按鈕會將 vUserInteraction 設為值 `='Yes'`。

* 顯示較少詳細資訊：按一下此按鈕會將 vUserInteraction 設為值 `='No'`。

在樞紐分析表中，您可以為圖表新增許多附加量值，例如 Count(Quantity) 和 Sum(Cost)。然後，對於在以下情況顯示欄，將每個量值欄設定為具有以下值：

```
'$(Reference)'='Yes'
```

這允許圖表根據使用者是否想要附加資訊而做出調整。如果使用者按一下顯示更多詳細資訊按鈕，則會將附加量值新增至表格中。如果不是，或者如果他們按一下顯示較少詳細資訊，則會移除附加量值。

### 更多範例：以貨幣符號展開使用變數

貨幣符號展開是 Qlik Sense 中的多功能且強大的工具，具有許多可能的使用方式。 如需更多範例，請參閱[貨幣符號展開](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansions.htm)。

### 範例：在運算式中直接參考變數

使用變數作為直接參考不太常見，但仍然實用。例如︰

假設資料模型中有欄位 TransactionSummary，其中包含交易的自由文字摘要。此欄位可以包含有關交易的補充資訊。例如，交易可以有摘要來記錄客戶使用商店積點購買了商品，或記錄銷售過程中出現的任何問題。

在您的應用程式中，您可能想要使用 TransactionSummary，但您希望將資料放入脈絡中，而不影響資料模型或載入指令碼，並且不會儲存在圖表中的其他位置。

您可以執行以下事項：

1. 在變數對話方塊中建立一個名為 vIntroStatement 的變數，定義如下：

   ```
   ='The following summary was provided by the vendor: '
   ```

2. 將以下量值新增至文字與影像圖表：

   ```
   vIntroStatement & TransactionSummary
   ```

將簡介陳述式儲存為變數，以便集中控制值的使用情況。例如，變數 vIntroStatement 可以用於多個圖表以及多個不同的量值 (例如，可能有一個獨立的圖表，有時包含描述交易期間售出多少單位的文字)。透過使用變數，您可以簡化更新應用程式中運算式的程序。若要變更措辭，只需更新變數，變更就會反映在整個應用程式中。

## 如何解釋名稱

不建議將變數命名為與 Qlik Sense 中某個欄位或函數相同的名稱。 但是如果您這樣做，則必須知道如何在運算式中使用它們。

範例：

字串 XXX 代表欄位、變數、函數或量值。XXX 將根據您建立運算式的方式，解譯為其中一個。

如何解譯名稱的範例

| 運算式 | XXX 解譯為 |
| --- | --- |
| XXX | 量值、變數或欄位 |
| $(XXX) | 變數 |
| Count(XXX) | 欄位或變數 |
| XXX() | 函數 |

命名實體時，避免將相同名稱指派至多個欄位、變數或量值。解決名稱相同的實體之間的衝突時有嚴格的優先順序。此順序反映在使用這些實體的任何物件或內容中。此優先順序如下：

* 在彙總內部，欄位優先於變數。量值標籤在彙總中不相關，沒有優先度。

* 在彙總外部，量值標籤優先於變數，結果會優先於欄位名稱。

* 此外，在彙總外部，可以參考其標籤以重新使用量值，除非該標籤實際上是計算出的標籤。在該情況下，量值的重要性會下降，以降低自行參考的風險，在此情況下，首先會一律將名稱解譯為量值標籤，第二會解譯為欄位名稱，第三會解譯為變數名稱。

作為最佳做法，請考慮對您在應用程式中建立的變數使用標準化命名慣例。例如，您可以確保所有變數名稱都以 v 開頭。例如：vUserText。這有助於確保快速將變數識別為變數並與量值、欄位和函數做出區分。

## 變數計算

有數種方法可搭配使用變數與 Qlik Sense 中計算的值，則結果會取決於您定義它的方式，以及您在運算式中調用它的方式。

此範例需要在資料載入編輯器中載入下列資料。

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

讓我們從變數對話方塊中定義兩個變數：

* 名稱vSales定義'Sum(Sales)'
* 名稱vSales2定義'=Sum(Sales)'

在第二個變數中，我們在運算式之前新增等號。這將導致在變數展開之前對它進行計算，並且會評估運算式。

如果您按原樣使用 vSales 變數，那麼在量值中該結果將是字串 Sum(Sales)，也就是說，不會執行任何計算。

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

最終，如果您調用 $(vSales2)，則會在變數展開之前對它進行計算。這表示所顯示的結果是 Sales 的總和。使用 =$(vSales) 與 =$(vSales2) 作為量值運算式之間的差異可在此圖表中看到，顯示結果：

結果

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

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

[變數對話方塊](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Sheets/variables-dialog.htm)

[在運算式中使用變數](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Variables/work-with-variables.htm)

[在資料載入編輯器中使用變數](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/work-with-variables-in-data-load-editor.htm)

[使用運算式編輯器](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Expressions/work-with-expression-editor.htm)

[在視覺化中使用運算式](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/use-expressions-in-visualizations.htm)