# GetObjectField - 圖表函數

GetObjectField() 傳回維度的 欄位運算式。Index 是選用整數，表示應傳回的維度。

資訊備註

您無法在下列位置的圖表中使用此功能：標題、子標題、頁尾、參考線運算式和最小/最大運算式。

資訊備註

您無法在使用 Object ID 的另一個物件中參考維度或量值名稱。

語法：

GetObjectField ([index])

傳回的資料類型： 字串

範例：圖表運算式

| 範例 | 結果 |
| --- | --- |
| `GetObjectField ()`<br><br>`GetObjectField (0)` | 傳回圖表中第一個維度的欄位運算式。 |
| `GetObjectField (1)` | 傳回圖表中第二個維度的欄位運算式。 |

若您想要傳回量值名稱，請改用 GetObjectMeasure 函數。

## 範例 - GetObjectField 基礎事項

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

#### 圖表運算式

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 `Example` 之資料表格的資料集。

* 資料表格中的欄位如下：

  * `TransactionDate`

  * `CustomerID`

  * `TransactionQuantity`

載入指令碼

```
Example:
LOAD * INLINE [
TransactionDate, CustomerID, TransactionQuantity
2018/08/30, 049681, 13
2018/08/30, 203521, 6
2018/08/30, 203521, 21
];
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* `TransactionDate`

* `CustomerID`

* `TransactionQuantity`

建立下列量值：

* `=GetObjectField()`，用來尋找表格中的第一個維度。
* `=GetObjectField(0)`，用來尋找表格中的第一個維度。
* `=GetObjectField(1)`，用來尋找表格中的第二個維度。

結果表格

| TransactionDate | CustomerID | TransactionQuantity | GetObjectField () | GetObjectField (0) | GetObjectField (1) |
| --- | --- | --- | --- | --- | --- |
| 2018/08/30 | 049681 | 13 | TransactionDate | TransactionDate | CustomerID |
| 2018/08/30 | 203521 | 6 | TransactionDate | TransactionDate | CustomerID |
| 2018/08/30 | 203521 | 21 | TransactionDate | TransactionDate | CustomerID |

查看結果，您可以看到 `GetObjectField` 函數如何傳回函數參數中指示的欄位名稱。

## 範例 - GetObjectField 進階使用情境

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

#### 圖表運算式

概述

此範例將 `GetObjectField` 函數與篩選選項組合使用。圖表物件中顯示的維度和量值計算會根據您選取的篩選條件而變更。

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到兩個內嵌資料表格 `Sales` 和 `Filter` 的資料集：第一個表格 `Sales` 包含銷售資料。第二個表格 `Filter` 包含將作為維度切換使用的欄位名稱清單。切換讓您可以在圖表中的維度之間切換，並自訂根據所選維度顯示的量值計算。

* `Sales` 表格中的下列欄位：

  * `Country`

  * `Salesperson`

  * `SalesValue`

* `Filter` 表格中的下列欄位：`FilterField`。

載入指令碼

```
Sales:
LOAD * INLINE [
Country, SalesPerson, SalesValue
USA, John, 500
USA, Alice, 700
Canada, Bob, 300
Canada, Carol, 400
Mexico, Dave, 200
];

Filter:
LOAD * INLINE [
FilterField
Country
SalesPerson
];
```

結果

1. 載入資料並開啟工作表。建立新的篩選窗格並將此欄位新增為維度：

   * `FilterField`

2. 在資產面板中，於欄位之下，用滑鼠右鍵按一下 FilterField 並選取欄位設定。選取永遠是單選值核取方塊，然後按一下儲存。

3. 建立表格，然後輸入下列運算式以新增維度：

   * `=$(= FilterField)`

   * 在標籤之下，輸入下列運算式，以定義維度的欄名稱：`='$(= FilterField)'`。

4. 建立下列量值：

   * `=If(GetObjectField() = 'Country', Sum(SalesValue), Avg(SalesValue))`，如果所選的維度是 `Country`，則用來加總銷售值，否則若所選的維度是 `SalesPerson`，則用來傳回平均銷售值。

   * 在 `Label` 之下，輸入下列運算式，以根據篩選選項定義將顯示量值的欄名稱：`=If(GetObjectField() = 'Country', 'Sum(SalesValue)', 'Avg(SalesValue)')`。例如，如果在篩選條件中選取了 `Country`，則量值的名稱將傳回值 `Sum(SalesValue)`。

在分析模式下，若您在 `FieldFilter` 篩選條件中的 `SalesPerson` 和 `Country` 之間切換，表格會變更，以納入所選維度以及該維度的對應量值計算。例如，如果您在篩選條件中選取 `Country`，則表格會在第一欄顯示 `Country` 作為維度。然後，量值會使用 `GetObjectField` 函數，將其等同於 `Country`，並傳回 `Sum(SalesValue)`。

Country 的篩選窗格和表格結果

Country 的篩選窗格和表格結果

CountryCountry 的篩選窗格和表格結果 ![具有篩選窗格的工作表可在國家和銷售人員之間切換，並在對應的表格中檢視每個結果。](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-GetObjDim-example.png)

下表顯示了在 `FilterField` 篩選條件中選取 `Country` 時的結果。

`Country`Country 的結果表格

| Country | Sum(SalesValue) |
| --- | --- |
| Canada | 700 |
| Mexico | 200 |
| USA | 1200 |

下表顯示了在 `FilterField` 篩選條件中選取 `SalesPerson` 時的結果。

`SalesPerson`SalesPerson 的結果表格

| SalesPerson | Avg(SalesValue) |
| --- | --- |
| Alice | 700 |
| Bob | 300 |
| Carol | 400 |
| Dave | 200 |
| John | 500 |