Compartir a través de


Función IF (DAX)

Comprueba si se cumple la condición proporcionada como primer argumento. Devuelve un valor si la condición es TRUE y devuelve otro valor si la condición es FALSE.

Sintaxis

IF(logical_test>,<value_if_true>, value_if_false)

Parámetros

Término

Definición

logical_test

Cualquier valor o expresión que puede dar como resultado TRUE o FALSE.

value_if_true

El valor que se devuelve si la prueba lógica es TRUE. Si se omite, se devuelve TRUE.

value_if_false

El valor que se devuelve si la prueba lógica es FALSE. Si se omite, se devuelve FALSE.

Valor devuelto

Cualquier tipo de valor que pueda devolver una expresión.

Comentarios

Si se omite el valor de value_if_true o value_if_false, IF lo trata como un valor de cadena vacía ("").

Si el valor al que se hace referencia en la expresión es una columna, IF devuelve el valor que corresponde a la fila actual.

La función IF intenta devolver un tipo de datos único en una columna. Por lo tanto, si los valores devueltos por value_if_true y value_if_false son de tipos de datos distintos, la función IF convertirá implícitamente los datos para adaptar ambos valores de la columna. Por ejemplo, la fórmula IF(<condition>,TRUE(),0) devuelve una columna de unos y ceros, y los resultados se pueden sumar, pero la fórmula IF(<condition>,TRUE(),FALSE()) únicamente devuelve valores lógicos. Para obtener más información acerca de la conversión implícita de tipos de datos, vea Tipos de datos admitidos en libros PowerPivot.

Ejemplo

En el siguiente ejemplo se usan funciones IF anidadas que evalúan el número de la columna, Calls, de la tabla FactCallCenter en Adventure Works DW2008R2. La función asigna una etiqueta del siguiente modo: low si el número de llamadas es menor que 200, medium si el número de llamadas es menor que 300 pero no es menor que 200 y high para todos los demás valores.

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

El siguiente ejemplo obtiene una lista de ciudades que contienen clientes potenciales en la zona de California mediante el uso de columnas de la tabla ProspectiveBuyer de Adventure Works DW2008R2. Como la lista se ha diseñado para planear una campaña que se dirigirá a personas casadas o con niños en casa, la condición de la función IF comprueba el valor de las columnas [MaritalStatus] y [NumberChildrenAtHome], y envía la ciudad si se cumple cualquiera de las condiciones y si el cliente es de California. De contrario, envía una cadena vacía. 

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

Observe que los paréntesis se usan para controlar el orden en el que se usan los operadores AND (&&) y OR (||). Observe también que no se ha especificado ningún valor para value_if_false. Por lo tanto, la función devuelve el valor predeterminado, que es una cadena vacía.