Checks whether a condition is met, and returns one value if TRUE, and another value if FALSE.
Any value or expression that can be evaluated to TRUE or FALSE.
The value that is returned if the logical test is TRUE.
The value that is returned if the logical test is FALSE.
Either ResultIfTrue or ResultIfFalse expression result, depending on LogicalTest.
Using IF can generate multiple branches of code execution that could result in slower performance at query time.
Then IF can return BLANK as one of the results, there are cases where using DIVIDE to obtain the same result could produce a faster query plan.
The following code returns BLANK if LogicalTest is false.
IF ( <LogicalTest>, <ResultIfTrue> )
The previous code is semantically equivalent to the following expression:
DIVIDE ( <ResultIfTrue>, <LogicalTest> )
Learn more about IF in the following articles:
Optimizing IF conditions by using variables
This article describes a very common optimization pattern that relies on variables to optimize conditional expressions in DAX. » Read more
Understanding eager vs. strict evaluation in DAX
This article describes the differences between eager evaluation and strict evaluation in DAX, empowering you to choose the best evaluation type for your data models. » Read more
Optimizing IF and SWITCH expressions using variables
This article describes how variables should be used in DAX expressions involving IF and SWITCH statements in order to improve performance. » Read more
From SQL to DAX: Implementing NULLIF and COALESCE in DAX
This article describes how to implement a syntax equivalent to the T-SQL function NULLIF and the ANSI SQL function COALESCE, in DAX. » Read more
Other related functions are:
Contributors: Alberto Ferrari, Marco Russo
MSDN documentation: https://docs.microsoft.com/en-us/dax/if-function-dax