# Only - fonction de graphique

Only() renvoie une valeur s'il n'y a qu'un seul résultat possible dans les données agrégées. Par exemple, la recherche du seul produit dont le prix unitaire est égal à 9 renverra NULL si plusieurs produits ont un prix unitaire de 9.

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

double

Arguments

| Argument | Description |
| --- | --- |
| expr | Expression ou champ contenant les données à mesurer. |
| SetExpression | Par défaut, la fonction d'agrégation couvre l'ensemble des enregistrements possibles définis par la sélection. Il est possible de définir un ensemble d'enregistrements alternatif à l'aide d'une expression d'analyse d'ensembles. |
| TOTAL | Si le terme TOTAL précède les arguments de la fonction, le calcul est effectué à partir de toutes les valeurs possibles au vu des sélections actives, et pas seulement à partir de celles qui sont associées à la valeur dimensionnelle active. Autrement dit, les dimensions du graphique ne sont pas prises en compte.<br><br>En utilisant TOTAL [&lt;fld {.fld}&gt;], où le qualificateur TOTAL est suivi d'un ou de plusieurs noms constituant un sous-ensemble des variables de dimension du graphique, vous créez un sous-ensemble du nombre total de valeurs possibles.<br><br>[Définition de l'étendue d'une agrégation](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Note ConseilUtilisez Only() pour obtenir un résultat NULL lorsque plusieurs valeurs sont possibles dans les échantillons de données.

Exemple : Expression de graphique

| Exemple | Résultat |
| --- | --- |
| `Only(Category)` | Affiche la catégorie `Category`, à condition qu'elle soit unique dans le contexte. |

## Exemple - Les bases de Only

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/only.htm)

#### Expression de graphique

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée `Example`.

* Champs suivants dans la table de données :

  * `Customer`

  * `Product`

  * `UnitSales`

  * `UnitPrice`

Script de chargement

```
Example:
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 '|');
```

Résultats

Chargez les données et ouvrez une feuille. Créez une nouvelle table avec les mesures suivantes :

* `=Only({<UnitPrice={9}>} Product)`, pour calculer le seul produit `Product` dont le prix unitaire `UnitPrice` est `9`.

* `=Only({<Product={DD}>} Customer)`, pour calculer le seul client `Customer` qui vend un produit `Product` appelé `DD`.

* `=Only({<UnitPrice={20}>} UnitSales)`, pour calculer le nombre de ventes unitaires `UnitSales` pour lesquelles le prix unitaire `UnitPrice` est `20`.

* `=Only({<UnitPrice={15}>} UnitSales)`, pour calculer les valeurs de ventes unitaires `UnitSales` pour lesquelles `UnitPrice = 15`.

Results table

| Only({&lt;UnitPrice={9}&gt;} Product) | Only({&lt;Product={DD}&gt;} Customer) | Only({&lt;UnitPrice={20}&gt;} UnitSales) | Only({&lt;UnitPrice={15}&gt;} UnitSales) |
| --- | --- | --- | --- |
| BB | Betacab | 2 | - |

Dans cet exemple, observez les points suivants :

* La première colonne renvoie la valeur `BB`, car il s'agit du seul produit `Product` dont le prix unitaire `UnitPrice` est `9` .

* La deuxième colonne renvoie `Betacab`, car il s'agit du seul client `Customer` qui vend un produit `Product` appelé `DD`.

* La troisième colonne renvoie `2`, car il s'agit de la seule valeur de `UnitSales` pour laquelle `UnitPrice = 20`.

* La quatrième colonne renvoie `NULL`, car il n'existe aucun résultat pour lequel `UnitPrice = 15`. Dans ce jeu de données, il existe deux valeurs de `UnitSales` pour lesquelles `UnitPrice =15`.

## Exemple - Scénario Only

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/only.htm)

#### Expression de graphique

Vue d'ensemble

Un jeu de données contient des ventes de produits par période. L'entreprise souhaite déterminer si un produit est vendu dans un seul magasin ou dans plusieurs.

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée `Example`.

* Champs suivants dans la table de données :

  * `Date`

  * `RecordID`

  * `StoreProduct`

  * `Sales`

Script de chargement

```
Example:
Load * inline [
Date, RecordID, StoreProduct, Sales, Store
2024-01-01, 1, Apple, 100, A
2024-01-15, 2, Banana, 80, B
2024-01-30, 3, Carrot, 50, C
2024-02-05, 4, Apple, 120, A
2024-02-20, 5, Banana, 90, B
2024-02-28, 6, Carrot, 60, D
2024-03-10, 7, Apple, 110, A
2024-03-22, 8, Banana, 85, B
2024-03-31, 9, Carrot, 55, C
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :

* `StoreProduct`

Créez les mesures suivantes :

* `=Only(Store)`, pour calculer le seul magasin dans lequel le produit est vendu.

* `=If(IsNull(Only(Store)), 'Multiple Stores', 'Single Store')`, pour calculer si le produit est vendu dans un seul magasin ou dans plusieurs.

* `=Sum(Sales)`, pour calculer les ventes de produits totales.

Results table

| StoreProduct | Only(Store) | If(IsNull(Only(Store)), 'Multiple Stores', 'Single Store') | Sum(Sales) |
| --- | --- | --- | --- |
| Apple | A | Single Store | 330 |
| Banana | B | Single Store | 255 |
| Carrot | - | Multiple Stores | 165 |

Les résultats indiquent que les pommes `Apples` et bananes `Bananas` ne sont vendus que dans un seul magasin, tandis que les carottes `Carrots` sont vendues dans plusieurs magasins.

## Exemple - Scénario avancé pour créer un tableau d'enregistrements sur un seul mois

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/only.htm)

#### Expression de graphique

Vue d'ensemble

Cet exemple utilise la fonction `Only` pour afficher un tableau d'enregistrements ligne par ligne pour un seul mois. Pour ce faire, l'analyse d'ensembles est utilisée pour délimiter l'ensemble d'enregistrements souhaité. L'analyse d'ensembles nécessite au moins une mesure, mais comme nous n'avons pas besoin d'agréger l'ensemble des enregistrements, nous pouvons utiliser efficacement la fonction d'agrégation `Only` pour couvrir l'étendue de l'analyse d'ensembles.

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée `Example`.

* Instruction preceding LOAD qui dérive le champ `MonthYear` du champ `Date` en tronquant le jour du mois, à l'aide de la fonction `MonthStart`, et en renvoyant une représentation de date du 1er de chaque mois. Ce résultat est fourni à la fonction `Date` pour définir le format d'affichage sur `MMM YY`, par exemple, `Jan 24`.

* Champs suivants dans la table de données :

  * `Date`

  * `RecordID`

  * `StoreProduct`

  * `Sales`

  * `Store`

Script de chargement

```
Example:
Load
*,
date(MonthStart (Date),'MMM YY') AS MonthYear
inline [
Date, RecordID, StoreProduct, Sales, Store
2024-01-01, 1, Apple, 100, A
2024-01-15, 2, Banana, 80, B
2024-01-30, 3, Carrot, 50, C
2024-02-05, 4, Apple, 120, A
2024-02-20, 5, Banana, 90, B
2024-02-28, 6, Carrot, 60, D
2024-03-10, 7, Apple, 110, A
2024-03-22, 8, Banana, 85, B
2024-03-31, 9, Carrot, 55, C
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* `MonthYear`

* `RecordID`

* `Date`

* `StoreProduct`

* `Store`

Créez les mesures suivantes :

* `=Only({$<MonthYear={'$(=MaxString(MonthYear))'}>} Sales)`, pour évaluer la valeur `Sales` et ne renvoyer que les enregistrements pour lesquels `MonthYear` est la dernière valeur `MonthYear` disponible (la plus récente), en fonction des sélections actives dans le tableau. L'expansion $ effectue un calcul en ligne à l'aide de la fonction `MaxString`, `$(=MaxString(MonthYear))`, qui renvoie la représentation textuelle de la dernière valeur `MonthYear`.

Note InformationsSi vous essayez de filtrer `MonthYear` en fonction de la représentation numérique, par exemple en utilisant la fonction ` Max  `, `Max(MonthYear)`, vous n'obtiendrez aucun résultat. L'analyse d'ensembles applique des sélections de filtre basées uniquement sur la représentation textuelle de tout type de données double ; un type de données avec une représentation numérique et textuelle comme `Date`.

Results table

| MonthYear | RecordID | Date | StoreProduct | Only({$&lt;MonthYear={‘$(=MaxString(MonthYear))’}&gt;} Sales) |
| --- | --- | --- | --- | --- |
| Mar 24 | 7 | 2024-03-10 | Apple | 110 |
| Mar 24 | 8 | 2024-03-22 | Banana | 85 |
| Mar 24 | 9 | 2024-03-31 | Carrot | 55 |

La sortie de la fonction `Only` produit un tableau d'enregistrements qui présente par défaut la valeur de vente de la dernière, ou de la plus récente, valeur `MonthYear` disponible dans les données. Si vous sélectionnez un mois antérieur dans la colonne `MonthYear`, par exemple `Feb 24`, la dernière valeur de vente de ce mois s'affichera.

## En savoir plus

* [Analyse d'ensembles](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Définition de l'étendue d'une agrégation](https://help.qlik.com/fr-FR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)