Fonction IF (DAX)

Vérifie si une condition fournie comme premier argument est remplie. Retourne une valeur si la condition est remplie (TRUE), et retourne une autre valeur si la condition n'est pas remplie (FALSE).

Syntaxe

IF(logical_test>,<value_if_true>, value_if_false)

Paramètres

Terme

Définition

logical_test

Valeur ou expression qui peut donner TRUE ou FALSE.

value_if_true

Valeur retournée si le résultat du test logique est TRUE. Si ce paramètre est omis, la valeur TRUE est retournée.

value_if_false

Valeur retournée si le résultat du test logique est FALSE. Si ce paramètre est omis, la valeur FALSE est retournée.

Valeur de retour

Type de valeur qui peut être retourné par une expression.

Notes

Si la valeur de value_if_true ou value_if_false est omise, IF considère qu'il s'agit d'une chaîne vide ("").

Si la valeur référencée dans l'expression est une colonne, IF retourne la valeur qui correspond à la ligne actuelle.

La fonction IF essaie de retourner un type de données unique dans une colonne. Par conséquent, si les valeurs retournées par value_if_true et value_if_false n'ont pas le même type de données, la fonction IF convertira implicitement les types de données pour loger les deux valeurs dans la colonne. Par exemple, la formule IF(<condition>,TRUE(),0) retourne une colonne de uns et de zéros, et les résultats peuvent être additionnés, mais la formule IF(<condition>,TRUE(),FALSE()) ne retourne que des valeurs logiques. Pour plus d'informations sur la conversion implicite de types de données, consultez Types de données pris en charge dans les classeurs PowerPivot.

Exemple

L'exemple suivant utilise des fonctions IF imbriquées qui évaluent le nombre dans la colonne, Calls, de la table FactCallCenter dans Adventure Works DW2008R2. La fonction attribue une étiquette comme suit : low si le nombre d'appels est inférieur à 200, medium si le nombre d'appels est inférieur à 300 mais pas inférieur à 200, et high pour toutes les autres valeurs.

=IF([Calls]<200,"low",IF([Calls]<300,"medium","high"))

L'exemple suivant obtient une liste des villes où résident des clients potentiels en Californie (CA), en utilisant des colonnes de la table ProspectiveBuyer dans Adventure Works DW2008R2. Étant donné que la liste est destinée à planifier une campagne qui ciblera des personnes mariées ou ayant des enfants sous leur toit, la condition incluse dans la fonction IF vérifie la valeur des colonnes [MaritalStatus] et [NumberChildrenAtHome], et fournit le nom de la ville si l'une des conditions est remplie et que le client vit en Californie. Sinon, elle retourne une chaîne vide. 

=IF([StateProvinceCode]= "CA" && ([MaritalStatus] = "M" || [NumberChildrenAtHome] >1),[City])

Notez que les parenthèses sont utilisées pour contrôler l'ordre dans lequel les opérateurs AND (&&) et OR (||) sont utilisés. Notez également qu'aucune valeur n'a été spécifiée pour value_if_false. Par conséquent, la fonction retourne la valeur par défaut, à savoir une chaîne vide.