Escritura de fórmulas de DAX

Completado

Cada tipo de cálculo de modelos, tabla calculada, columna calculada o medida se define por su nombre, seguido del símbolo igual (=), que va seguido de una fórmula de DAX. Use la siguiente plantilla para crear un cálculo de modelos:

<Calculation name> = <DAX formula>

Por ejemplo, la definición de la tabla calculada Ship Date que duplica los datos de la tabla Date es la siguiente:

Ship Date = 'Date'

Una fórmula de DAX se compone de expresiones que devuelven un resultado. El resultado es un objeto de tabla o un valor escalar. Las fórmulas de tabla calculadas deben devolver un objeto de tabla; las fórmulas de columna y medida calculadas deben devolver un valor escalar (valor único).

Las fórmulas se ensamblan empleando lo siguiente:

  • Funciones DAX
  • Operadores DAX
  • Referencias a objetos de modelo
  • Valores constantes, como el número 24 o el texto literal "FY" (abreviatura en inglés de año fiscal)
  • Variables DAX
  • Espacio en blanco

Sugerencia

Al introducir fórmulas DAX en Power BI Desktop, tiene la ventaja de emplear IntelliSense. IntelliSense es una ayuda de finalización de código que muestra las funciones y los recursos del modelo. Al seleccionar una función DAX, también se proporciona una definición y una descripción. Es recomendable usar IntelliSense para crear fórmulas precisas rápidamente.

Funciones DAX

Como ocurre con Microsoft Excel, DAX es un lenguaje funcional, lo que significa que las fórmulas dependen de funciones para lograr objetivos específicos. Normalmente, las funciones DAX tienen argumentos que permiten pasar variables. Las fórmulas pueden usar muchas llamadas a funciones y, a menudo, anidan funciones dentro de otras funciones.

En una fórmula, los nombres de las funciones deben ir seguidos de paréntesis. Dentro de los paréntesis se pasan las variables.

Nota

Algunas funciones no adoptan argumentos, o los argumentos pueden ser opcionales.

El trabajo con funciones DAX se describe más adelante en este módulo.

Operadores DAX

Las fórmulas también emplean operadores, que pueden hacer cálculos aritméticos, comparar valores, trabajar con cadenas o probar condiciones.

Los operadores DAX se describen con más detalle posteriormente en este módulo.

Referencias a objetos de modelo

Las fórmulas solo pueden hacer referencia a tres tipos de objetos de modelo: tablas, columnas o medidas. Una fórmula no puede hacer referencia a una jerarquía o a un nivel de jerarquía. (Recuerde que un nivel de jerarquía se basa en una columna, por lo que la fórmula puede hacer referencia a la columna de un nivel de jerarquía).

Referencias de tabla

Cuando hace referencia a una tabla en una fórmula, el nombre oficial de la tabla está entre comillas simples. En la siguiente definición de tabla calculada, observe que la tabla Date está entre comillas simples.

Ship Date = 'Date'

Sin embargo, se pueden omitir estas comillas si se cumplen las dos condiciones siguientes:

  1. El nombre de la tabla no incluye espacios incrustados.
  2. El nombre de la tabla no es una palabra reservada utilizada por DAX. Todos los nombres y operadores de las funciones DAX son palabras reservadas. Date es un nombre de función DAX; es por eso que, al hacer referencia a una tabla denominada Date, debe poner ese nombre entre comillas simples.

En la siguiente definición de tabla calculada, es posible omitir las comillas simples al hacer referencia a la tabla Airport:

Arrival Airport = Airport

Referencias de columna

Cuando haga referencia a una columna en una fórmula, el nombre de la columna debe estar entre corchetes. Si lo desea, también puede ir precedido por el nombre de la tabla. Por ejemplo, la siguiente definición de medida se refiere a la columna Sales Amount.

Revenue = SUM([Sales Amount])

Dado que los nombres de columna son exclusivos dentro de una tabla, pero no necesariamente dentro de un modelo, puede eliminar la ambigüedad de la referencia a esa columna poniendo delante el nombre de la tabla a la que pertenece. Esta columna cuya ambigüedad se ha eliminado se conoce como columna completa. Algunas funciones DAX requieren el paso de columnas completas para poder funcionar.

Sugerencia

Para que sus fórmulas sean más fáciles de entender, es recomendable comenzar la referencia a una columna con el nombre de la tabla a la que pertenece.

La definición de medida del ejemplo anterior se podría escribir del siguiente modo:

Revenue = SUM(Sales[Sales Amount])

Referencias a medidas

Cuando hace referencia a una medida en una fórmula, como las referencias a nombres de columnas, el nombre de la medida debe estar entre corchetes. Por ejemplo, la siguiente definición de medida hace referencia a las medidas Revenue y Cost.

Profit = [Revenue] - [Cost]

Si no tiene experiencia en DAX, el hecho de que las referencias de columna y medida estén siempre entre corchetes puede generar confusión a la hora de intentar comprender una fórmula. Sin embargo, a medida que se familiarice con los fundamentos de DAX, podrá determinar de qué tipo de objeto se trata, ya que, en DAX, las fórmulas, las columnas y las medidas se usan de diferentes maneras.

Sugerencia

Es posible anteponer una referencia de medida con el nombre de su tabla. Sin embargo, las medidas son un objeto del nivel de modelo. Aunque se asignan a una tabla principal, esta relación es puramente estética, empleada para organizar de forma lógica las medidas en el panel Datos.

Por lo tanto, si bien recomendamos que siempre preceda una referencia de columna con su nombre de tabla, lo contrario es cierto para las medidas: le recomendamos que nunca preceda una referencia de medida con su nombre de tabla.

Para obtener más información, consulte Referencias a columnas y medidas.

Variables DAX

Las fórmulas pueden declarar variables DAX para almacenar los resultados.

En este módulo, hablaremos más adelante sobre cómo y cuándo usar las variables DAX.

Espacio en blanco

El espacio en blanco hace referencia a los caracteres que se pueden usar para dar formato a las fórmulas de una manera rápida y sencilla de entender. Estos son algunos de los caracteres de espacio en blanco:

  • Espacios
  • Tabulaciones
  • Retornos de carro

Los espacios en blanco son opcionales y no modifican la lógica de la fórmula ni afectan negativamente al rendimiento. Es muy recomendable adoptar un estilo de formato específico y aplicarlo de un modo uniforme, así como tener en cuenta las siguientes sugerencias:

  • Use espacios entre los operadores.
  • Use tabulaciones para aplicar sangrías en las llamadas a funciones anidadas.
  • Use retornos de carro para separar los argumentos de la función, especialmente cuando esta sea demasiado larga como para caber en una sola línea. Este tipo de formato simplifica la resolución de problemas, sobre todo cuando a la fórmula le falta un paréntesis.
  • Es mejor equivocarse por dejar demasiados espacios en blanco que por dejar muy pocos.

Sugerencia

En la barra de fórmulas, pulse Mayús + Intro para introducir un retorno de carro. Si solo pulsa Intro, lo que estará haciendo es confirmar la fórmula.

Como puede ver, la siguiente definición de medida está escrita en una sola línea e incluye cinco llamadas a la función DAX:

Revenue YoY % = DIVIDE([Revenue] - CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date])), CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date])))

El siguiente ejemplo es la misma definición de medida, pero ahora tiene formato, lo que facilita la lectura y la comprensión:

Revenue YoY % =
DIVIDE(
    [Revenue]
        - CALCULATE(
            [Revenue],
            SAMEPERIODLASTYEAR('Date'[Date])
    ),
    CALCULATE(
        [Revenue],
        SAMEPERIODLASTYEAR('Date'[Date])
    )
)

Intente aplicar formato a la medida por su cuenta. Abra el archivo Adventure Works DW 2020 M02.pbix de Power BI Desktop y, en el panel Datos, expanda la tabla Sales y seleccione la medida Revenue YoY %. En la barra de fórmulas, utilice el tabulador y los caracteres de retorno de carro para obtener el mismo resultado que en el ejemplo anterior. Recuerde que, para añadir un retorno de carro, debe pulsar Mayús + Intro.

Esta definición de medida se puede mejorar aún más para facilitar la lectura y el rendimiento, lo que se explicará más adelante en este módulo.

Sugerencia

Una excelente herramienta de formato de otro origen que puede usar para dar formato a los cálculos es DAX Formatter. Con esta herramienta, puede pegar su cálculo y darle formato. Luego, puede copiar el cálculo con formato en el portapapeles y pegarlo de nuevo en Power BI Desktop.