Trabajar con funciones de DAX

Completado

La biblioteca de funciones de DAX consta de cientos de funciones, cada una diseñada para lograr un objetivo específico.

Como DAX se originó con el complemento de Power Pivot para Microsoft Excel 2010, hay disponibles más de 80 funciones que también se pueden encontrar en Excel. Era una estrategia de diseño deliberada por Microsoft para garantizar que los usuarios de Excel puedan ser productivos rápidamente con DAX.

Sin embargo, existen muchas funciones que no se encuentran en Excel porque son específicas del modelado de datos:

  • Funciones de navegación por relaciones
  • Funciones de modificación del contexto de filtro
  • Funciones del iterador
  • Funciones de inteligencia de tiempo
  • Funciones de ruta de acceso

Sugerencia

Para buscar la documentación relacionada con una función de DAX, en una búsqueda web, escriba la palabra clave DAX seguida del nombre de la función.

Para más información, vea la referencia sobre las funciones de DAX.

Funciones que se originan en Excel

En las secciones siguientes se consideran varias funciones útiles con las que es posible que ya esté familiarizado porque existen en Excel.

La función IF de DAX comprueba si se cumple una condición proporcionada como el primer argumento. Devuelve un valor si la condición es TRUE y devuelve el otro valor si la condición es FALSE. La sintaxis de la función es:

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

Sugerencia

Un argumento de función es opcional cuando la documentación lo muestra entre corchetes.

Si logical_test se evalúa como FALSE y value_if_false no se proporciona, la función devolverá BLANK.

Se encuentran disponibles muchas funciones de resumen de Excel, como SUM, COUNT, AVERAGE, MIN, MAX y muchas otras. La única diferencia es que, en DAX, pasa una referencia de columna, mientras que, en Excel, pasa un rango de celdas.

También están disponibles muchas funciones matemáticas, textuales, temporales, informativas y lógicas de Excel. Una pequeña muestra de funciones de Excel que están disponibles en DAX serían, por ejemplo, ABS, ROUND, SQRT, LEN, LEFT, RIGHT, UPPER, DATE, YEAR, MONTH, NOW, ISNUMBER, TRUE, FALSE, AND, OR, NOT y IFERROR.

Funciones que no se originan en Excel

Dos funciones de DAX útiles que no son específicas del modelado y que no se originan en Excel son DISTINCTCOUNT y DIVIDE.

Función DISTINCTCOUNT

Puede usar la función DISTINCTCOUNT de DAX para contar el número de valores distintos de una columna. Esta función es especialmente eficaz en una solución de análisis. Tenga en cuenta que el recuento de clientes es diferente del recuento de clientes distintos. Este último no cuenta los clientes repetidos, por lo que la diferencia es "cuántos clientes" con respecto a "cuántos clientes distintos".

Función DIVIDE

Puede usar la función DIVIDE de DAX para lograr la división. Debe pasar expresiones de numerador y denominador. Opcionalmente, puede pasar un valor que represente un resultado alternativo. La sintaxis de la función DIVIDE es:

DIVIDE(<numerator>, <denominator>[, <alternate_result>])

La función DIVIDE maneja automáticamente la división por cero casos. Si no se pasa un resultado alternativo y el denominador es cero o BLANK, la función devuelve BLANK. Cuando se pasa un resultado alternativo, se devuelve este resultado en lugar de BLANK.

Esta función es útil porque guarda la expresión para que no tenga que probar primero el valor de denominador. La función también está mejor optimizada para probar el valor de denominador que la función IF. La mejora del rendimiento es importante porque la comprobación de la división por cero es costosa. Además, el uso de la función DIVIDE da como resultado una expresión más concisa y elegante.

Sugerencia

Se recomienda usar la función DIVIDE siempre que el denominador sea una expresión que pueda devolver cero o BLANK. En el caso de que el denominador sea un valor constante, se recomienda utilizar el operador de división (/), que se presenta más adelante en este módulo. En este caso, se garantiza que la división sea correcta, y el rendimiento de la expresión será mayor porque evitará las pruebas innecesarias.