# Dimensionality - fonction de graphique

Dimensionality() renvoie le nombre de dimensions correspondant à la ligne active. Dans le cas des tableaux croisés dynamiques, la fonction renvoie le nombre de colonnes de dimension présentant un contenu non agrégatif, c'est-à-dire ne comprenant pas de sommes partielles ou d'agrégats réduits.

Syntaxe :

Dimensionality ( )

Type de données renvoyé : entier

Limitations :

Cette fonction n'est disponible que dans les graphiques. Pour tous les types de graphique, excepté le tableau croisé dynamique, cette fonction renverra le nombre de dimensions dans toutes les lignes sauf celle du total, qui donnera 0.

Le tri sur les valeurs des ordonnées dans les graphiques ou le tri par colonnes d'expressions dans les tableaux n'est pas autorisé lors de l'utilisation de cette fonction de graphique dans l'une des expressions du graphique. Ces options de tri sont donc automatiquement désactivées. Lorsque vous utilisez cette fonction de graphique dans une visualisation ou un tableau, le tri de la visualisation revient à l'entrée triée via cette fonction.

## Exemple : Expression de graphique avec Dimensionality

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/dimensionality.htm)

#### Expression de graphique

Vue d'ensemble

Utilisez la fonction `Dimensionality` avec un tableau croisé dynamique comme expression de graphique pour appliquer différents formatages de cellules suivant le nombre de dimensions d'une ligne contenant des données non agrégées. Cet exemple applique une couleur d'arrière-plan aux cellules du tableau correspondant à une condition donnée.

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 :

  * `Country`

  * `Product`

  * `Sales`

  * `Budget`

Script de chargement

```
Example:
Load * inline [
Country, Product, Sales, Budget
Sweden, AA, 100000, 50000
Germany, AA, 125000, 175000
Canada, AA, 105000, 98000
Norway, AA, 74850, 68500
Ireland, AA, 49000, 48000
Sweden, BB, 98000, 99000
Germany, BB, 115000, 175000
Norway,BB,71850,68500
Ireland,BB,31000,48000
] (delimiter is ',');
```

Pour plus d'informations sur l'utilisation de chargements inline, consultez [Utilisation de chargements inline pour charger des données](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Résultats

Chargez les données et ouvrez une feuille. Créez un nouveau tableau croisé dynamique et ajoutez ces champs comme dimensions de ligne :

* `Country`

* `Product`

Créez les mesures suivantes :

* `=Sum(Sales)`, pour calculer la somme des valeurs de `Sales`.

* `=Sum(Budget)`, pour calculer la somme des valeurs de `Budget`.

* `=Dimensionality()`, pour renvoyer le nombre de dimensions de la ligne en cours.

Dans le panneau Propriétés de la mesure `Sum(Sales)`, saisissez l'expression suivante comme Expression de la couleur d'arrière-plan :

```
=If(Dimensionality()=1 and Sum(Sales)<Sum(Budget),RGB(255,156,156),
  If(Dimensionality()=2 and Sum(Sales)<Sum(Budget),RGB(178,29,29)
  )
 )
```

La sortie de l'expression de couleur d'arrière-plan applique un arrière-plan de cellule rouge clair ou rouge foncé aux cellules du tableau lorsque les conditions applicables sont remplies.

Tableau croisé dynamique montrant les résultats pour les dimensions de ligne : CountryCountry, ProductProduct

| Country |  |  |  |
| --- | --- | --- | --- |
| Product |  |  |  |
|  | Sum(Sales) | Sum(Budget) | Dimensionality() |
| (+) Canada | 105000 | 98000 | 1 |
| (-) Germany | 240000 | 350000 | 1 |
| AA | 125000 | 175000 | 2 |
| BB | 115000 | 175000 | 2 |
| (+) Ireland | 80000 | 96000 | 1 |
| (+) Norway | 146700 | 137000 | 1 |
| (+) Sweden | 198000 | 149000 | 1 |

Lorsque la dimension de la première ligne (`Country`) est affichée, la fonction `Dimensionality` renvoie `1`. Lorsque vous développez une dimension de ligne telle que `Germany` pour afficher la dimension de la deuxième ligne (`Product`), la fonction renvoie `2`.

Les expressions de couleur d'arrière-plan de la mesure `Sum(Sales)` effectuent des calculs basés sur la dimensionnalité et les ventes pour mettre en évidence les différents résultats. Lorsque la dimensionnalité est `1`, tout pays `Country` pour lequel la valeur `Sum(Sales)` est inférieure à la valeur `Sum(Budget)` apparaît en rouge clair ; dans cet exemple, `Germany` et `Ireland`. Lorsque la dimensionnalité est `2`, tout produit `Product` pour lequel la valeur `Sum(Sales)` est inférieure à la valeur `Sum(Budget)` apparaît en rouge foncé ; dans cet exemple, `AA` et `BB` pour `Germany`.

## Exemple - Scénario Dimensionality

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/dimensionality.htm)

#### Expression de graphique

Vue d'ensemble

Cet exemple utilise la fonction `Dimensionality` pour appliquer des détails à un rapport et mettre en évidence les cellules du tableau pour certaines dimensions.

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 :

  * `Region`

  * `SalesProduct`

  * `Year`

  * `SalesValue`

  * `Quantity`

  * `Product`

Script de chargement

```
Example:
LOAD * INLINE [
Region, SalesProduct, Year, SalesValue, Quantity, Profit
North, Laptop, 2023, 20000, 15, 4000
North, Mobile, 2023, 15000, 25, 3000
North, Laptop, 2022, 18000, 20, 3500
North, Mobile, 2022, 14000, 22, 2800
South, Laptop, 2023, 22000, 18, 4500
South, Mobile, 2023, 16000, 27, 3200
South, Laptop, 2022, 19000, 19, 3800
South, Mobile, 2022, 15000, 23, 3100
East, Laptop, 2023, 21000, 16, 4200
East, Mobile, 2023, 15500, 24, 3100
East, Laptop, 2022, 18500, 18, 3900
East, Mobile, 2022, 14500, 21, 2950
West, Laptop, 2023, 23000, 17, 4700
West, Mobile, 2023, 16500, 26, 3300
West, Laptop, 2022, 19500, 20, 4000
West, Mobile, 2022, 15500, 24, 3100
North, Tablet, 2023, 12000, 10, 2500
South, Tablet, 2023, 13000, 12, 2700
East, Tablet, 2023, 12500, 11, 2600
West, Tablet, 2023, 13500, 13, 2800
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez un nouveau tableau croisé dynamique et ajoutez ces champs comme dimensions de ligne :

* `Year`

* `SalesProduct`

* `Region`

Créez les mesures suivantes :

* `=If(Dimensionality()=1, 'Total', 'Detail')`, pour indiquer s'il s'agit d'une ligne `Total` ou `Detail`.

* `=If(Dimensionality()=3, 'Region-Level', If(Dimensionality()=2, 'Product-Level', 'Summary-Level'))`, pour indiquer le niveau de dimension affiché.

* `=Sum(SalesValue)`, pour calculer la somme des ventes.

Dans le panneau Propriétés de la mesure `Sum(SalesValue)`, saisissez l'expression suivante comme Expression de la couleur d'arrière-plan :

```
=If(Dimensionality()=1, LightGray())
```

La sortie de l'expression de couleur d'arrière-plan applique un arrière-plan de cellule gris clair aux cellules du tableau lorsque la dimensionnalité est `1`.

Tableau croisé dynamique montrant les résultats pour les dimensions de ligne : CountryCountry, ProductProduct

| Year |  |  |  |
| --- | --- | --- | --- |
| SalesProduct |  |  |  |
| Region |  |  |  |
|  | If(Dimensionality()=1, 'Total', 'Detail') | If(Dimensionality()=3, 'Region-Level', If(Dimensionality()=2, 'Product-Level', 'Summary-Level')) | Sum(SalesValue) |
| (+) 2022 | Total | Summary-Level | 134000 |
| (-) 2023 | Total | Summary-Level | 200000 |
| (-)Laptop | Detail | Product-Level | 86000 |
| East | Detail | Region-Level | 21000 |
| North | Detail | Region-Level | 20000 |
| South | Detail | Region-Level | 22000 |
| West | Detail | Region-Level | 23000 |
| (-) Mobile | Detail | Product-Level | 63000 |
| (-) Tablet | Detail | Product-Level | 51000 |

Vous pouvez voir comment la fonction `Dimensionality` peut être utilisée pour améliorer le détail du rapport et mettre en évidence toutes les dimensions des lignes de niveau supérieur.