# if Fonction de script et de graphique

La fonction if renvoie une valeur variant selon que la condition fournie avec la fonction est évaluée comme True ou False.

[If Function](https://play.vidyard.com/qnkaRddq32LnAGUTTDGdLA)

Syntaxe :

if(condition , then [, else])

Type de données renvoyé : double

Arguments

| Argument | Description |
| --- | --- |
| condition | Expression interprétée de manière logique. |
| then | Expression pouvant être de tout type. Si la condition est True, la fonction if renvoie la valeur de l'expression then. |
| else | Expression pouvant être de tout type. Si la condition est False, la fonction if renvoie la valeur de l'expression else.<br><br>Ce paramètre est facultatif. Si la condition est False, NULL est renvoyé si vous n'avez pas précisé else. |

Exemple : Expressions de graphique

| Exemple | Résultat |
| --- | --- |
| `if( Amount>=<br>						0, 'OK', 'Alarm' )` | Cette expression teste si la valeur est un nombre positif (0 ou une valeur supérieure) et renvoie `OK` si c'est le cas. Si le résultat est inférieur à 0, l'expression renvoie `Alarm`. |

Certains exemples de cette rubrique utilisent des chargements inline. [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)

## Exemple - Script de chargement avec if

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

#### Script de chargement

Vue d'ensemble

Vous pouvez utiliser If dans un script de chargement avec d'autres méthodes et objets, y compris des variables. Cet exemple utilise la variable `threshold` et inclut dans le modèle de données un nouveau champ basé sur le seuil.

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 deux tables de données appelées :

  * `Transactions` : inclut les champs de transaction

  * `Transaction_Buckets` : inclut un champ `transaction_id` et crée un nouveau champ, `[Compared to Threshold]`, en utilisant la fonction `if` pour comparer le champ `transaction_amount` au paramètre de variable `threshold`.

* Instruction de variable `threshold` définie sur `100`.

Script de chargement

```
Transactions:
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, m, orange
3752, 20180916, 5.75, 1, 5646471, S, blue
3753, 20180922, 125.00, 7, 3036491, l, Black
3754, 20180922, 484.21, 13, 049681, xs, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black
];
 
set threshold = 100;
					
/* Create new table called Transaction_Buckets 
Compare transaction_amount field from Transaction table to threshold of 100.
Output results into a new field called Compared to Threshold
 */

Transaction_Buckets:
Load
   transaction_id,
   If(transaction_amount > $(threshold),'Greater than $(threshold)','Less than $(threshold)') as [Compared to Threshold]
Resident Transactions;
```

Résultats

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

* `transaction_id`

* `[Compared to Threshold]`

Tableau de résultats affichant la sortie obtenue suite à l'utilisation de la fonction ifif dans le script de chargement.

| transaction\_id | Par rapport au seuil |
| --- | --- |
| 3750 | Inférieur à 100 |
| 3751 | Supérieur à 100 |
| 3752 | Inférieur à 100 |
| 3753 | Supérieur à 100 |
| 3754 | Supérieur à 100 |
| 3756 | Inférieur à 100 |
| 3757 | Supérieur à 100 |

## Exemple - Évaluation des données de produits à l'aide de if

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

#### Expression de graphique

Vue d'ensemble

Un jeu de données contient des données de produits. Vous souhaitez identifier et classer les produits selon qu'ils sont consommables ou non.

Script de chargement

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 :

  * `ProductID`

  * `ProductName`

  * `ProductCategory`

```
Example:
LOAD * INLINE [
ProductID, ProductName, ProductCategory
1, "Laptop", "Electronics"
2, "Banana", "Fruits"
3, "Shampoo", "Toiletries"
4, "TV", "Electronics"
5, "Apple", "Fruits"
];
```

Résultats

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

* `ProductID`

* `ProductName`

* `ProductCategory`

Créez la mesure suivante :

* `=If(ProductCategory =  'Toiletries' or ProductCategory =  'Fruits', 'Consumable', 'Other')`, pour renvoyer les valeurs requises.

Tableau de résultats

| ProductID | ProductName | ProductCategory | If(ProductCategory = 'Toiletries' or ProductCategory = 'Fruits', 'Consumable', 'Other') |
| --- | --- | --- | --- |
| 1 | Laptop | Electronics | Other |
| 2 | Banana | Fruits | Consumable |
| 3 | Shampoo | Toiletries | Consumable |
| 4 | TV | Electronics | Other |
| 5 | Apple | Fruits | Consumable |

Les résultats montrent que la fonction `if` évalue l'expression et renvoie les valeurs requises. Par exemple, les produits de la catégorie `Fruits` ou `Toiletries` sont classés comme `Consumable`.

## Exemple - Évaluation et classement de données client à l'aide de if

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

#### Expression de graphique

Vue d'ensemble

Un jeu de données contient des données client. Vous souhaitez identifier et classer les clients dont la région et le secteur d'activité répondent à vos critères de classification.

Script de chargement

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 :

  * `ClientID`

  * `ClientName`

  * `Region`

  * `Industry`

```
Example:
LOAD * INLINE [
ClientID, ClientName, Region, Industry
1, "Acme Corp", "North", "Manufacturing"
2, "Beta Ltd", "East", "Technology"
3, "Gamma Inc", "West", "Retail"
4, "Delta LLC", "North", "Technology"
5, "Epsilon GmbH", "South", "Healthcare"
];
```

Résultats

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

* `ClientID`

* `ClientName`

* `Region`

* `Industry`

Créez la mesure suivante :

* `=If((Region = 'North' or Region = 'East') AND (Industry= 'Technology' or Industry = 'Manufacturing'), 'Target Segment', 'Secondary Segment')`, pour renvoyer la valeur requise.

Tableau de résultats

| ClientID | ClientName | Region | Industry | If((Region = 'North' or Region = 'East') AND (Industry= 'Technology' or Industry = 'Manufacturing'), 'Target Segment', 'Secondary Segment') |
| --- | --- | --- | --- | --- |
| 1 | Acme Corp | North | Manufacturing | Target Segment |
| 2 | Beta Ltd | East | Technology | Target Segment |
| 3 | Gamma Inc | West | Retail | Secondary Segment |
| 4 | Delta LLC | North | Technology | Target Segment |
| 5 | Epsilon GmbH | Sound | Healthcare | Secondary Segment |

Les résultats montrent que la fonction `if` évalue l'expression et renvoie les valeurs requises. Par exemple, `Acme Corp` est classé comme `Target Segment`, car il remplit les conditions pour faire partie de la région `North` ou `East` et de l'industrie `Manufacturing` ou `Technology`.

## Exemple - Évaluation des données d'incidents à l'aide de if

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

#### Expression de graphique

Vue d'ensemble

Utilisez la fonction if pour catégoriser un jeu de données de rapports d'incidents.

Script de chargement

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

  * Location

  * Incidents

```
Example:
LOAD * inline [
Date, Location, Incidents
1/3/2016, Beijing, 0
1/3/2016, Boston, 12
1/3/2016, Stockholm, 3
1/3/2016, Toronto, 0
1/4/2016, Beijing, 0
1/4/2016, Boston, 8];
```

Résultats

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

* Date

* Emplacement

* Incidents

Créez les dimensions calculées suivantes :

* =if(Incidents&gt;=10, 'Critical', 'Ok' )

* =if(Incidents&gt;=10, 'Critical', If( Incidents&gt;=1 and Incidents&lt;10, 'Warning', 'Ok'))

Tableau de résultats

| Date | Location | Incidents | if(Incidents&gt;=10, 'Critical', 'Ok' ) | if(Incidents&gt;=10, 'Critical', If( Incidents&gt;=1 and Incidents&lt;10, 'Warning', 'Ok')) |
| --- | --- | --- | --- | --- |
| 1/3/2016 | Beijing | 0 | Ok | Ok |
| 1/3/2016 | Boston | 12 | Critical | Critical |
| 1/3/2016 | Stockholm | 3 | Ok | Warning |
| 1/3/2016 | Toronto | 0 | Ok | Ok |
| 1/4/2016 | Beijing | 0 | Ok | Ok |
| 1/4/2016 | Boston | 8 | Ok | Warning |

## Exemple - Classification de dates à l'aide de if

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

#### Expression de graphique

Vue d'ensemble

Utilisez la fonction if pour classer des dates.

Script de chargement

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

```
SET FirstWeekDay=0;
Load 
Date(MakeDate(2022)+RecNo()-1) as Date
Autogenerate 14;
```

Résultats

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

* Date

Créez les dimensions calculées suivantes :

* WeekDay(Date)

* =If(WeekDay(Date)&gt;=5,'WeekEnd','Normal Day')

Tableau de résultats

| Date | WeekDay(Date) | If(WeekDay(Date)&gt;=5,'WeekEnd','Normal Day') |
| --- | --- | --- |
| 1/1/2022 | Sat | WeekEnd |
| 1/2/2022 | Sun | WeekEnd |
| 1/3/2022 | Mon | Normal Day |
| 1/4/2022 | Tue | Normal Day |
| 1/5/2022 | Wed | Normal Day |
| 1/6/2022 | Thu | Normal Day |
| 1/7/2022 | Fri | Normal Day |
| 1/8/2022 | Sat | WeekEnd |
| 1/9/2022 | Sun | WeekEnd |
| 1/10/2022 | Mon | Normal Day |
| 1/11/2022 | Tue | Normal Day |
| 1/12/2022 | Wed | Normal Day |
| 1/13/2022 | Thu | Normal Day |
| 1/14/2022 | Fri | Normal Day |