# 參考欄位、量值和變數

運算式可以包含參考欄位、變數和量值。

在大部分的情況下，運算式為彙總，此為可能可以跨越多個記錄的計算。這表示運算式中的所有欄位參考必須納入彙總函數中。若沒有使用彙總函數，會使用 Only() 函數。

若運算式內使用量值名稱，這會解譯為量值的別名。這允許您重複使用已定義的項目。以此方式，您可以使用主量值和圖表量值的標籤。不過，圖表量值必須在相同的圖表中。您無法使用其他圖表中的量值標籤。

您可以透過遞迴方式定義量值。換言之，量值可以包含本身的參考。不過，您只能在列數不多的圖表中這麼做。若圖表列數太多，效能會降低。若有幾百列，遞迴定義將會全部停止運作。

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

## 如何解譯名稱

運算式內部的名稱可以是欄位、變數、函數或量值的參考。根據情況，會以不同方式解譯名稱。

範例：

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

如何解譯名稱的範例

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

您不可對欄位和變數 (或量值) 使用相同的名稱。但若您這麼做而且有模糊性，會使用下列前導參照順序：

* 若在彙總函數內部發現名稱，欄位具有對於變數的前導參照。

* 若在彙總函數外部發現名稱，量值標籤具有對於變數名稱的前導參照，結果會具有對於欄位名稱的前導參照。

## 運算式規則

圖表運算式適用以下規則：

* 若欄位參考沒有納入彙總函數中，引擎會使用 Only() 函數。

* 所有運算式都會傳回一個數字及/或字串，依適合的情況而定。

* 邏輯函數和運算子對於 False 會傳回 0，對於 True 會傳回 -1。數字轉換成字串以及字串轉換成數字是隱含的。

* 邏輯運算子和函數會將 0 解譯為 False，而將其他都解譯為 True。

* 無法正確評估的運算式 (例如不正確的參數或函數所致) 會傳回 NULL。

## 瞭解更多資訊

* [指令碼運算式](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/script-expressions.htm)
* [在視覺化中使用運算式](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/use-expressions-in-visualizations.htm)