# GetObjectField - チャート関数

GetObjectField() は、軸の 項目の数式を返します。Index は、返される軸を示すオプションの整数です。

情報メモ

この機能は、以下の場所にあるチャートでは使用できません：タイトル、サブタイトル、フッター、基準線式、最小/最大式。

情報メモ

Object ID を使用して、他のオブジェクトの軸またはメジャーの名前を参照することはできません。

構文:

GetObjectField ([index])

戻り値データ型： 文字列

例: チャートの数式

| 例 | 結果 |
| --- | --- |
| `GetObjectField ()`<br><br>`GetObjectField (0)` | チャートの最初の軸の項目数式を返します。 |
| `GetObjectField (1)` | チャートの 2 番目の軸の項目数式を返します。 |

メジャーの名前を返す場合は、代わりに 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)`、テーブルの 2 番目の軸を見つけます。

結果テーブル

| 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` 関数とフィルター選択を組み合わせて使用しています。チャート オブジェクトに表示される軸とメジャーの計算は、選択したフィルターに基づいて変更されます。

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* 2 つのインライン データ テーブル (`Sales` と `Filter`) にロードされるデータセット。最初のテーブル `Sales` には、売上データが含まれています。2 番目のテーブル `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] を右クリックし、 [項目の設定] を選択します。[Always one value selected] (常に 1 つの値を選択する) チェック ボックスをオンにして、 [保存] をクリックします。

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/ja-JP/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 |