# Only

Only() は、集計データに結果が 1 つしか存在しない場合に値を返します。例えば、単価 = 9 の製品を検索した場合、単価が 9 の製品が複数あると、NULL が返されます。

構文:

Only([{SetExpression}] [TOTAL [&lt;fld {,fld}&gt;]] expr)

戻り値データ型： デュアル

引数：

* expr: メジャーの対象となるデータが含まれている数式または項目。

* SetExpression: デフォルトでは、集計関数は選択されたレコード セットに対して集計を行います。Set 分析数式でレコード セットを定義することも可能です。

* TOTAL: 関数の引数の前に TOTAL の文字が配置されている場合、現在の軸の値に関連しているものだけでなく、現在の選択範囲内にあるすべての可能な値に対して計算が実行されます。つまりチャート軸は無視されます。 TOTAL 修飾子の後には、山括弧 &lt;fld&gt; で囲んだ 1 つ以上の項目名のリストを続けることができます。これらの項目名は、チャート軸の変数のサブセットにする必要があります。

  [集計範囲の定義](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm)

ヒント メモ Only() は、サンプル データに可能な値が複数存在する場合に NULL を返すよう設定するために使用します。

例と結果

| 例 | 結果 |
| --- | --- |
| `<br>Only({<UnitPrice={9}>} Product)` | BB (`Product` の中で「9」という `UnitPrice` がある唯一の項目) |
| `Only({<Product={DD}>} Customer)` | Betacab (「DD」という `Product` を販売している唯一の `Customer`) |
| `Only({<UnitPrice={20}>} UnitSales)` | `UnitSales` の数。`UnitSales` の値は 1 つしかないため、`UnitPrice` が 20 の場合は 2 になる（(`UnitPrice`) =20） |
| `Only({<UnitPrice={15}>} UnitSales)` | NULL (`UnitPrice` = 15 の `UnitSales` 値が 2 つあるため) |

**例で使用されているデータ:**

`ProductData:` `LOAD * inline [` `Customer|Product|UnitSales|UnitPrice` `Astrida|AA|4|16` `Astrida|AA|10|15` `Astrida|BB|9|9` `Betacab|BB|5|10` `Betacab|CC|2|20` `Betacab|DD||25` `Canutility|AA|8|15` `Canutility|CC||19` `] (delimiter is '|');`

テーブル形式のデータ例

| Customer | Product | UnitSales | UnitPrice |
| --- | --- | --- | --- |
| Astrida | AA | 4 | 16 |
| Astrida | AA | 10 | 15 |
| Astrida | BB | 9 | 9 |
| Betacab | BB | 5 | 10 |
| Betacab | CC | 2 | 20 |
| Betacab | DD | - | 25 |
| Canutility | AA | 8 | 15 |
| Canutility | CC | - | 19 |

## 詳細を見る

* [set 分析および set 数式](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [集計範囲の定義](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm)