# 輸入欄位

QlikView 支援特殊類型的輸入欄位，完全不需要執行指令碼即可變更。

輸入欄位就和 QlikView 的其他任何欄位一樣，差別只在於不需要再次執行指令碼，往後即可變更在指令碼中讀取的值。輸入欄位的使用方式，和所有類型的工作表物件中其他任何的欄位一樣。

使用輸入欄位時，指令碼會建立各個欄位值的預留位置，日後編輯即可包含新的資料。在指令碼的inputfield 陳述式中列出尚未在 LOAD 或 SELECT 陳述式中出現的任何欄位，即可將任何欄位轉換為輸入欄位。

在列表框儲存格、表格方塊儲存格和表格圖表運算式儲存格中，可以變更輸入欄位的值。只有包含輸入欄位的列表框和表格資料行才可供編輯。將滑鼠暫留在可編輯的儲存格上，即可看見輸入圖示。按一下該圖示，即可將該儲存格設為輸入編輯模式。處於輸入編輯模式時，可使用向上鍵/向下鍵，在儲存格之間移動。每當輸入新的值時，整份 QlikView 文件就會自動重新計算。

表格圖表運算式儲存格可能包含特殊輸入欄位彙總函數，並仍將開啟以供輸入。這項變更將按照預先定義的演算法重新散佈到基礎欄位值，例如「平均分散」或「依比例分散」。

可以指定相關變更。

資訊備註使用分佈模式作為運算式的一部分時，相關變更發揮作用。

適用下列語法 (n 是數字)：

輸入語法

| 語法 | 描述 |
| --- | --- |
| %+n | 目前值增加 n% |
| %-n | 目前值減少 n% |
| +=n | 目前值增加 n |
| -=n | 目前值減少 n |
| \*=n | 目前值乘以 n |
| /=n | 目前值除以 n |

範例：

%+10 會將目前值增加 10%。

+=56 會將目前值增加 56。

\*=2 會將值乘以 2。

/=2 會將值除以 2。

/=0 不變。

另外也有自動化 API 可透過程式設計的方式擷取和設定值。

## 限制

* 計算後的欄位和索引鍵欄位無法做為輸入欄位。輸入欄位功能將自動停用。
* 輸入欄位不適用於大量資料，因為這些欄位儲存資料的效率遠低於一般欄位。
* 輸入欄位和邏輯欄位之間的索引鍵必須為唯一，不可包含任何重複的值。

## 輸入欄位範例

此範例將輸入欄位新增至資料並顯示您可以如何以互動方式更新值。

1. 在載入指令碼中載入下列資料。

   `Inputfield Value;` ` ` `Table1:` `LOAD * INLINE` `[` `Key, Attribute, Value` `Bob, Jan, 100` `Bob, Feb, 200` `Bob, Mar, 300` `Kate, Jan, 400` `Kate, Feb, 500` `Kate, Mar, 600` `];`

2. 載入資料後，建立表格方塊並新增全部三個欄位。

3. 建立連續表圖表並新增 Key 作為維度。新增以下運算式：

   * `Sum(Value)`
   * `InputSum(Value)`

   兩個運算式將顯示相同的值，但您只能更新連續表中的 `InputSum(Value)`，無法更新 `Sum(Value)`。

您現在可以在表格方塊中以互動方式變更 Value。連續表中運算式的彙總值將會據此更新。

您也可以在連續表中更新 `InputSum(Value)` 運算式的值。將會在表格方塊中更新基礎值。該變更會同等發佈至所有值，但您可以透過 `InputSum()` 函數變更發佈模式。

## 瞭解更多資訊

* [Inputfield](https://help.qlik.com/zh-TW/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptPrefixes/Inputfield.htm)
* [inputsum](https://help.qlik.com/zh-TW/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/SpecialInputFieldAggregationFunctions/Inputsum.htm)
* [inputavg](https://help.qlik.com/zh-TW/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/SpecialInputFieldAggregationFunctions/Inputavg.htm)