Excel DAX: errores de fórmula

Puede obtener errores al escribir DAX formulascon sintaxis incorrecta. Los campos calculados y las columnas calculadas pueden contener funciones DAX que requieren un tipo específico de argumentos. Los argumentos de las funciones DAX pueden ser tablas, columnas u otras funciones DAX (funciones DAX anidadas). Dado que las funciones de DAX pueden devolver tablas y columnas, se debe tener cuidado de comprobar que se pasa el tipo correcto de argumentos a las funciones de DAX.

Los errores de fórmula de DAX pueden ser errores de sintaxis o errores semánticos. Los errores pueden ocurrir en tiempo de diseño o en tiempo de ejecución.

En este capítulo, aprenderá sobre algunos errores comunes de DAX, sus causas y cómo corregirlos.

Error de DAX: cálculo cancelado

El siguiente error puede ocurrir al intentar crear (tiempo de diseño) o usar (tiempo de ejecución) un campo calculado con una función de inteligencia de tiempo de DAX. En cada caso, se pasa un intervalo de fechas no contiguo a la función de inteligencia de tiempo.

"Error de DAX: CÁLCULO ABORTADO: MdxScript (instancia) (00, 0) La función 'DATEADD' solo funciona con selecciones de fechas contiguas".

Causa en tiempo de ejecución

Este error se puede mostrar cuando un campo calculado con una función de inteligencia de tiempo de DAX se coloca en el área VALORES de una tabla dinámica y los campos de fecha, como el mes o el trimestre, se seleccionan como segmentaciones o filtros antes de seleccionar un año. Por ejemplo, si tiene datos de tres años: 2014, 2015 y 2016 e intenta usar solo el mes de marzo sin seleccionar el campo Año, entonces los valores no son valores de datos contiguos y obtendrá un error.

¿Cómo solucionar el error en tiempo de ejecución?

En el ejemplo anterior,

  • En primer lugar, agregue Año como una segmentación o un filtro y seleccione un año.

  • Luego, agregue Mes o Trimestre como una segmentación o un filtro.

  • Luego, seleccione uno o más meses o trimestres para dividirlos o filtrarlos por el año seleccionado.

Causa en tiempo de diseño

Las funciones de inteligencia de tiempo de DAX requieren una columna de fecha especificada para el argumento de fecha. La columna de fecha debe tener un rango de fechas contiguo. Este error se puede devolver si hay un valor de fecha en una o más filas de la columna de fecha que no es contiguo con los valores de datos en las filas anteriores y sucesivas.

Si importó su tabla que contiene fechas de una fuente de datos, recuerde que muchas organizaciones ejecutan procesos especiales que escanean tablas en bases de datos en busca de valores no válidos y los reemplazan con un valor particular. Es decir, si se encuentra una fecha no válida, se le asigna un valor de fecha particular que puede no ser contiguo con otros valores de datos en la columna.

¿Cómo solucionar este error en tiempo de diseño?

Haga lo siguiente para corregir el error en tiempo de diseño:

  • Si su tabla de fechas se importa desde una fuente de datos, use Actualizar en la ventana de Power Pivot para volver a importar los cambios encontrados en la fuente.

  • Verifique los valores en su columna de fecha para asegurarse de que estén en orden contiguo. Si se encuentra que algún valor no está en su lugar, tendrá que corregirse en la fuente y la tabla de fechas deberá actualizarse.

  • Cree una tabla de fechas y una columna de fechas separadas en su modelo de datos. Especifique la nueva columna de fecha como el argumento de fecha en la fórmula que causa el error. Las tablas de fechas son fáciles de crear y agregar a un modelo de datos.

Error semántico de DAX: un ejemplo

El siguiente error de DAX es un error semántico:

“Se ha usado una función 'CALCULAR' en una expresión verdadero-falso que se usa como expresión de filtro de tabla. Esto no esta permitido."

Porque

Este error puede aparecer cuando una o más expresiones de filtro no se pueden utilizar en el contexto del campo calculado o la expresión de columna calculada.

En la mayoría de los casos, este error es causado por una expresión de filtro especificada como un argumento para la función DAX CALCULATE. La función CALCULAR requiere filtros definidos como una expresión booleana o una expresión de tabla.

¿Cómo corregir estos errores?

Puede corregir dichos errores utilizando la función DAX FILTER para definir filtros como una expresión de tabla, que luego se puede utilizar como argumento para la función DAX CALCULATE.