Especificación de sintaxis de DAX para PowerPivot

DAX (Expresiones de análisis de datos) es una biblioteca de funciones, operadores y constantes que se pueden combinar para crear fórmulas y expresiones en PowerPivot para Excel. En esta sección se proporcionan detalles sobre la sintaxis y los requisitos del lenguaje DAX. 

Para obtener ejemplos de los tipos de fórmulas que se pueden generar y cómo se pueden utilizar las expresiones para filtrar tablas y cambiar el contexto, vea Información general sobre expresiones de análisis de datos (DAX). Este tema contiene las siguientes secciones:

Requisitos de sintaxis

Requisitos de los nombres

Funciones

Operadores y constantes

Tipos de datos

Requisitos de sintaxis

Las fórmulas de DAX son muy similares a las fórmulas que se escriben en las tablas de Excel, pero hay algunas diferencias clave.

  • En Microsoft Excel se puede hacer referencia a matrices o celdas individuales; en PowerPivot, solo se puede hacer referencia a tablas o columnas de datos completas. Sin embargo, si necesita trabajar con solo parte de una columna, o con valores únicos en una columna, puede lograr un comportamiento similar usando funciones de DAX que filtran la columna o devuelven valores únicos.

  • Las fórmulas de DAX no admiten exactamente los mismos tipos de datos que Microsoft Excel. En general, DAX proporciona más tipos de datos que Excel, y DAX realiza conversiones de tipos implícitas en algunos datos al importar. Para obtener más información, vea Data Types in DAX.

Una fórmula de DAX siempre comienza con un signo igual (=). Después del signo igual, puede proporcionar cualquier expresión que se evalúe como un escalar o una expresión que se puede convertir en un escalar. Entre ellas, figuran:

  • Una constante escalar o expresión que usa un operador escalar (+, -, *,/,>=,...&&,...)

  • Referencias a columnas o tablas. El lenguaje DAX siempre utiliza tablas y columnas como entradas para funciones, nunca una matriz o un conjunto arbitrario de valores.

  • Operadores, constantes y valores proporcionados como parte de una expresión.

  • El resultado de una función y sus argumentos necesarios. Algunas funciones DAX devuelven una tabla en lugar de un escalar y se deben ajustar en una función que evalúa la tabla y devuelve un escalar; a menos que la tabla fuera de una columna y una fila únicas; entonces se trataría como un valor escalar.

    La mayoría de las funciones de PowerPivot requieren uno o más argumentos, como tablas, columnas, expresiones y valores. Sin embargo, algunas funciones, como PI, no necesitan ningún argumento, pero siempre deben utilizar paréntesis para indicar un argumento nulo. Por ejemplo, siempre se debe escribir PI(), no PI. También se pueden anidar funciones dentro de otras funciones.

  • Expresiones. Una expresión puede contener cualquiera o todos los siguientes: operadores, constantes o referencias a columnas.

Por ejemplo, todas las fórmulas siguientes son válidas:

Fórmula

Resultado

=3

3

="Sales"

Sales

='Sales'[Amount]

Si usa esta fórmula en la tabla Sales, obtendrá el valor de la columna Amount de la tabla Sales para la fila actual.

=(0.03 *[Amount])

=0.03 * [Amount]

Tres por ciento del valor de la columna Amount de la tabla actual.

Aunque esta fórmula se puede utilizar para calcular un porcentaje, el resultado no se muestra como tal a menos que aplique el formato en la tabla.

=PI()

El valor de la constante pi.

Nota

Las fórmulas pueden comportarse de forma diferente dependiendo de si se usan en una columna calculada o en una medida dentro de una tabla dinámica. Siempre debe ser consciente del contexto y cómo los datos que usa en la fórmula se relacionan con otros datos que se podrían utilizar en el cálculo. Para obtener más información, vea Contexto de las fórmulas DAX.

Requisitos de los nombres

Una ventana de PowerPivot puede contener varias tablas, cada una en su propia pestaña. El conjunto formado por las tablas y sus columnas componen una base de datos que se almacena en el motor VertiPaq de PowerPivot. Dentro de esa base de datos, todas las tablas deben tener nombres únicos. Los nombres de columnas también deben ser únicos dentro de cada tabla. Todos los nombres de objeto no distinguen mayúsculas de minúsculas; por ejemplo, los nombres SALES y Sales representarán la misma tabla.

Cada columna y medida que agregue a una base de datos de PowerPivot existente deben pertenecer a una tabla concreta. Especifique la tabla que contiene la columna de forma implícita al crear una columna calculada dentro de una tabla, o de forma explícita al crear una medida, y especifique el nombre de la tabla donde se debe almacenar la definición de la medida.

Al usar una tabla o columna como una entrada para una función, generalmente debe calificar el nombre de columna. El nombre completo de una columna está formado por el nombre de tabla seguido por el nombre de columna entre corchetes: por ejemplo, 'U.S. Sales'[Products]. Siempre se requiere un nombre completo al hacer referencia a una columna en los siguientes contextos:

  • Como argumento a la función VALUES

  • Como argumento a las funciones ALL o ALLEXCEPT

  • En un argumento de filtro para las funciones CALCULE o CALCULATETABLE

  • Como argumento a la función RELATEDTABLE

  • Como argumento a cualquier función de inteligencia de tiempo

Un nombre de columna no calificado es simplemente el nombre de la columna entre corchetes, por ejemplo [Sales Amount]. Cuando se hace referencia a un valor escalar de la misma fila de la tabla actual, puede usar el nombre de columna no calificado, por ejemplo.

Si el nombre de una tabla contiene espacios, palabras clave reservadas o caracteres no permitidos, deberá incluir el nombre de la tabla entre comillas simples. También debe escribir los nombres de tabla entre comillas si contiene algún carácter que esté fuera del intervalo ANSI de caracteres alfanumérico, independientemente de que la configuración regional admita el juego de caracteres o no. Por ejemplo, si abre un libro que tiene nombres de tabla escritos con caracteres cirílicos, por ejemplo ‘Таблица’, el nombre de la tabla debe estar entre comillas, aunque no contenga espacios.

Nota

Para facilitar la entrada de los nombres de columnas completos, recomendamos usar la característica Autocompletar fórmula en el cliente.

Tablas

  • Los nombres de tabla se requieren siempre que la columna proceda de una tabla distinta de la tabla actual. Los nombres de tabla deben ser únicos en la base de datos.

  • Los nombres de tabla deben ir entre comillas simples si contienen espacios, otros caracteres especiales o cualquier carácter alfanumérico que no sea del inglés.

Medidas

  • Los nombres de medida siempre deben incluirse entre corchetes.

  • Los nombres de medida pueden contener espacios.

  • Cada nombre de medida debe ser único dentro de una base de datos. Por consiguiente, el nombre de tabla es opcional delante de un nombre de medida cuando haga referencia a una medida existente. Sin embargo, cuando cree una medida, siempre debe especificar una tabla en la que se almacenará la definición de la medida.

Columnas

Los nombres de columna deben ser únicos en el contexto de una tabla; sin embargo, varias tablas pueden tener columnas con los mismos nombres (la desambiguación se produce con el nombre de tabla).

En general, se puede hacer referencia a las columnas sin hacer referencia a la tabla base a la que pertenecen, excepto cuando podría haber un conflicto de nombres que resolver o con ciertas funciones que requieren que los nombres de columna estén completos.

Palabras clave reservadas

Si el nombre que utiliza para una tabla es igual que una palabra clave reservada de Analysis Services, se produce un error y deberá cambiar el nombre de la tabla. Sin embargo, puede utilizar palabras clave en nombres de objeto si el nombre de objeto se incluye entre corchetes (para las columnas) o entre comillas (para las tablas).

Nota

Tenga en cuenta que varios caracteres diferentes pueden representar las comillas, dependiendo de la aplicación. Si pega fórmulas de un documento externo o página web, debe comprobar el código ASCII del carácter que se utiliza para las comillas de apertura y cierre, para asegurarse de que son iguales. De lo contrario, DAX podría no reconocer los símbolos como comillas, y la referencia no sería válida.

Caracteres especiales

Los siguientes caracteres y tipos de caracteres no son válidos para los nombres de tabla, columna o medida:

  • Los espacios iniciales o finales, a menos que se incluyan entre delimitadores de nombre, corchetes o apóstrofos únicos.

  • Caracteres de control

  • Los siguientes caracteres que son no válidos en los nombres de los objetos PowerPivot:

    .,;':/\*|?&%$!+=()[]{}<>

Ejemplos de nombres de objeto

En la siguiente tabla se muestran ejemplos de algunos nombres de objeto:

Tipos de objeto

Ejemplos

Comentario

Nombre de tabla

Sales

Si el nombre de tabla no contiene espacios u otros caracteres especiales, no es necesario que vaya entre comillas.

Nombre de tabla

‘Canada Sales’

Si el nombre contiene espacios, tabulaciones u otros caracteres especiales, inclúyalo entre comillas simples.

Nombre completo de columna

Sales[Amount]

El nombre de tabla precede al nombre de columna y el nombre de columna se incluye entre corchetes.

Nombre completo de medida

Sales[Profit]

El nombre de tabla precede al nombre de la medida y el nombre de la medida se incluye entre corchetes. En ciertos contextos, siempre se requiere un nombre completo.

Nombre no calificado de columna

[Amount]

El nombre no calificado simplemente es el nombre de columna, entre corchetes. Los contextos en los que puede utilizar el nombre no calificado son, entre otros, las fórmulas de una columna calculada dentro de la misma tabla o en una función de agregación que examina con la misma tabla.

Nombre completo de columna de la tabla con espacios

‘Canada Sales’[Qty]

El nombre de la tabla contiene espacios. Por tanto, debe ir entre comillas simples.

Nota

Para facilitar la introducción de los nombres de columnas completos, recomendamos el uso de la característica Autocompletar cuando se creen fórmulas. Para obtener más información, vea Generar fórmulas para cálculos.

Restricciones

La sintaxis necesaria para cada función y el tipo de operación que puede realizar varían en gran medida según la función. Sin embargo, generalmente las reglas siguientes se aplican a todas las fórmulas y expresiones:

  • Las fórmulas y expresiones de DAX no pueden modificar ni insertar valores individuales en tablas.

  • Con DAX no se pueden crear filas calculadas. Solo se pueden crear medidas y columnas calculadas.

  • Al definir las columnas calculadas, las funciones se pueden anidar en cualquier nivel.

  • DAX tiene varias funciones que devuelven una tabla. Normalmente, se utilizan los valores devueltos por estas funciones como entrada para otras funciones, que requieren una tabla como entrada.

Operadores y constantes de DAX

En la tabla siguiente se muestran los operadores admitidos por DAX. En general, los operadores en DAX se comportan de la misma manera que en Microsoft Excel, con algunas excepciones menores. Para obtener más información sobre la sintaxis de cada uno de los operadores, vea Referencia de operadores de DAX para PowerPivot.

Tipo de operador

Símbolo y uso

Operador de paréntesis

() orden de prioridad y agrupación de argumentos

Operadores aritméticos

+ (suma)

- (resta/signo)

* (multiplicación)

/ (división)

^ (exponenciación)

Operadores de comparación

= (igual que)

> (mayor que)

< (menor que)

>= (mayor o igual que)

<= (menor o igual que)

<> (distinto de)

Operador de concatenación de texto

& (concatenación)

Operadores lógicos

&& (y)

|| (o)

Tipos de datos en DAX

No es necesario convertir ni especificar el tipo de datos de una columna o valor que se utiliza en una fórmula de DAX. Cuando se utilizan datos en una fórmula de DAX, DAX identifica automáticamente los tipos de datos en las columnas a las que se hace referencia y en los valores que se escriben, y realiza conversiones implícitas donde sea necesario para completar la operación especificada.

Por ejemplo, si intenta sumar un número a un valor de fecha, al igual que en Excel, PowerPivot interpretará la operación en el contexto de la función, como Excel, y convertirá los números a un tipo de datos común; a continuación, presentará el resultado en el formato previsto, es decir, una fecha.

Sin embargo, hay algunas limitaciones que afectan a los valores que se pueden convertir correctamente. Si un valor o una columna tiene un tipo de datos incompatible con la operación actual, DAX devuelve un error. Asimismo, DAX no proporciona funciones que permiten explícitamente cambiar o convertir el tipo de datos de los datos existentes que ha importado a un libro de PowerPivot.

Nota importanteImportante

PowerPivot no admite el uso del tipo de datos variant utilizado en Excel. Por consiguiente, al cargar o importar datos, se espera que los datos en cada columna sean generalmente de un tipo de datos coherente.

Algunas funciones devuelven valores escalares, por ejemplo cadenas, mientras que otras funciones trabajan con números, tanto enteros como reales, o fechas y horas. El tipo de datos requerido para cada función se describe en la sección Referencia de funciones DAX para PowerPivot.

Las tablas son un tipo de datos nuevo en PowerPivot. Como argumento para una función, puede usar tablas que contengan varias columnas y varias filas de datos. Algunas funciones también devuelven tablas, que se almacenan en memoria y se pueden utilizar como argumentos para otras funciones.

Para obtener más información acerca de los distintos tipos de datos numéricos y de fecha/hora y detalles sobre la administración de cadenas nulas y vacías, vea Data Types Supported in PowerPivot Workbooks.

Vea también

Conceptos