Leer en inglés

Compartir a través de


SI

Se aplica a:columna Calculadatabla calculadaMedidacálculo visual

Comprueba una condición y devuelve un valor cuando es TRUE; de lo contrario, devuelve un segundo valor.

Sintaxis

DAX
IF(<logical_test>, <value_if_true>[, <value_if_false>])

Parámetros

Término Definición
logical_test Cualquier valor o expresión que se pueda evaluar para TRUE o FALSE.
value_if_true Valor devuelto si la prueba lógica es TRUE.
value_if_false (Opcional) Valor devuelto si la prueba lógica es FALSE. Si se omite, se devuelve BLANK.

Valor devuelto

value_if_true, value_if_falseo BLANK.

Observaciones

  • La función IF puede devolver un tipo de datos variant si value_if_true y value_if_false son de tipos de datos diferentes, pero la función intenta devolver un único tipo de datos si value_if_true y value_if_false son de tipos de datos numéricos. En este último caso, la función IF convertirá implícitamente los tipos de datos para dar cabida a ambos valores.

    Por ejemplo, la fórmula IF(<condition>, TRUE(), 0) devuelve TRUE o 0, pero la fórmula IF(<condition>, 1.0, 0) devuelve solo valores decimales aunque value_if_false sea del tipo de datos de número entero. Para obtener más información sobre la conversión implícita de tipos de datos, consulte Tipos de datos.

  • Para ejecutar las expresiones de rama independientemente de la expresión de condición, use IF. DILIGENTE en su lugar.

Ejemplos

Las siguientes Definiciones de columna calculadas de la tabla Product usan la función IF de maneras diferentes para clasificar cada producto en función de su precio de lista.

En el primer ejemplo se comprueba si el valor de la columna List Price es inferior a 500. Cuando esta condición es true, se devuelve el valor Low. Dado que no hay ningún valor value_if_false, se devuelve BLANK.

Los ejemplos de este artículo se pueden usar con el modelo de Power BI Desktop de Adventure Works 2020 de ejemplo. Para obtener el modelo, consulte modelo de ejemplo de DAX.

DAX
Price Group =
IF(
    'Product'[List Price] < 500,
    "Low"
)

En el segundo ejemplo se usa la misma prueba, pero esta vez incluye un valor value_if_false. Por lo tanto, la fórmula clasifica cada producto como Low o High.

DAX
Price Group =
IF(
    'Product'[List Price] < 500,
    "Low",
    "High"
)

En el tercer ejemplo se usa la misma prueba, pero esta vez anida una función IF para realizar una prueba adicional. Por lo tanto, la fórmula clasifica cada producto como Low, Mediumo High.

DAX
Price Group =
IF(
    'Product'[List Price] < 500,
    "Low",
    IF(
        'Product'[List Price] < 1500,
        "Medium",
        "High"
    )
)

Sugerencia

Cuando necesite anidar varias funciones IF, la función SWITCH podría ser una mejor opción. Esta función proporciona una manera más elegante de escribir una expresión que devuelve más de dos valores posibles.

IF. de función EAGER
switch (DAX)
funciones lógicas