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 plantilla siguiente 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:

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 calculada deben devolver un objeto de tabla; las fórmulas de medida y columna calculada deben devolver un valor escalar (un valor único).

Las fórmulas se ensamblan mediante:

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

Sugerencia

Al escribir fórmulas de DAX en Power BI Desktop, tiene la ventaja de 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 de DAX, también se proporciona una definición y una descripción. Se recomienda usar IntelliSense para ayudarle a crear fórmulas precisas rápidamente.

Funciones de DAX

De forma similar a Microsoft Excel, DAX es un lenguaje funcional. Esto significa que las fórmulas se basan en funciones para lograr objetivos específicos. Normalmente, las funciones de 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 función 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 de DAX se describe más adelante en este módulo.

Operadores de DAX

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

Los operadores de 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 se hace referencia a una tabla en una fórmula, oficialmente, el nombre de la tabla se incluye 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 las comillas simples si se cumplen las dos condiciones siguientes:

  1. El nombre de la tabla no incluye espacios insertados.
  2. El nombre de la tabla no es una palabra reservada utilizada por DAX. Todos los nombres y operadores de las funciones de DAX son palabras reservadas. Date es el nombre de una función de DAX, que explica por qué, cuando se hace referencia a una tabla denominada Date, debe incluirse entre comillas simples.

En la siguiente definición de tabla calculada, es posible omitir los corchetes al hacer referencia a la tabla Airport:

Arrival Airport = Airport

Referencias de columna

Cuando se hace referencia a una columna en una fórmula, el nombre de la columna debe incluirse entre corchetes. Opcionalmente, puede ir precedido por el nombre de la tabla. Por ejemplo, la siguiente definición de medida hace referencia a la columna Sales Amount.

Revenue = SUM([Sales Amount])

Dado que los nombres de columna son únicos en una tabla, pero no necesariamente únicos en el modelo, puede eliminar la ambigüedad de la referencia de columna anteponiéndole el nombre de la tabla. Esta columna en la que se ha eliminado la ambigüedad se conoce como columna completa. Algunas funciones de DAX requieren pasar columnas completas.

Sugerencia

Para mejorar la legibilidad de las fórmulas, se recomienda anteponer siempre una referencia de columna con el nombre de la tabla.

La definición de medida de ejemplo anterior se puede volver a escribir como:

Revenue = SUM(Sales[Sales Amount])

Referencias de medidas

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

Profit = [Revenue] - [Cost]

Si es principiante en el uso de DAX, el hecho de que las referencias de columna y medida siempre estén incluidas entre corchetes puede causar confusión al intentar leer una fórmula. Sin embargo, cuando sea experto en los aspectos básicos de DAX, podrá determinar de qué tipo de objeto se trata, porque, en las fórmulas de DAX, las columnas y medidas se usan de maneras diferentes.

Sugerencia

Es posible anteponer una referencia de medida con el nombre de la tabla. Sin embargo, las medidas son un objeto de nivel de modelo. Mientras están asignadas a una tabla de inicio, solo es una relación cosmética para organizar de manera lógica las medidas en el panel Campos.

Por tanto, aunque se recomienda anteponer siempre una referencia de columna con el nombre de la tabla, se aplica lo contrario para las medidas: Se recomienda no anteponer nunca una referencia de medida con el nombre de la tabla.

Para más información, vea Referencias de columnas y medidas.

Variables de DAX

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

Cómo y cuándo usar las variables de DAX se describe más adelante en este módulo.

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. Los caracteres de espacio en blanco incluyen:

  • Espacios
  • Tabulaciones
  • Retornos de carro

El espacio en blanco es opcional y no modifica la lógica de la fórmula ni afecta negativamente al rendimiento. Se recomienda encarecidamente adoptar un estilo de formato y aplicarlo de forma coherente, y tener en cuenta las siguientes sugerencias:

  • Use espacios entre los operadores.
  • Use tabulaciones para aplicar sangría a las llamadas a funciones anidadas.
  • Use retornos de carro para separar los argumentos de la función, especialmente cuando es demasiado larga para caber en una sola línea. Este tipo de formato simplifica la solución de problemas, especialmente cuando falta un paréntesis en la fórmula.
  • Error en el lateral por demasiado espacio en blanco en lugar de muy poco.

Sugerencia

En la barra de fórmulas, para escribir un retorno de carro, presione Mayús+ENTRAR. Al presionar solo ENTRAR, se confirmará la fórmula.

Considere la siguiente definición de medida que se escribe en una sola línea y que incluye cinco llamadas a funciones de 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, 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, a continuación, en el panel Campos, expanda la tabla Sales y, a continuación, seleccione la medida Revenue YoY %. En la barra de fórmulas, use los caracteres de tabulación y retorno de carro para generar el mismo resultado que en el ejemplo anterior. Cuando agregue un retorno de carro, recuerde presionar Mayús+ENTRAR.

Se puede mejorar aún más la legibilidad y el rendimiento de esta definición de medida, una cuestión que se explicará más adelante en este módulo.

Sugerencia

Una excelente herramienta de formato de otro origen que puede ayudar a dar formato a los cálculos es el formateador de DAX. Esta herramienta permite pegar el cálculo y darle formato. A continuación, puede copiar el cálculo con formato en el portapapeles y pegarlo de nuevo en Power BI Desktop.