Contexto de las fórmulas DAX

Nota:  Nos gustaría proporcionarle el contenido de ayuda actual lo más rápido posible en su idioma. Esta página se ha traducido mediante un sistema automático y es posible que contenga imprecisiones o errores gramaticales. Nuestro objetivo es que este contenido sea útil para usted. ¿Puede informarnos sobre si la información le ha sido útil al final de la página? Aquí tiene el artículo en inglés para que pueda consultarlo fácilmente.

El contexto le permite realizar análisis dinámicos, en los que los resultados de una fórmula pueden cambiar para reflejar la selección de fila o celda actual, y también los datos relacionados. Entender lo que es el contexto y usarlo eficazmente es muy importante para generar fórmulas muy eficaces, y para solucionar los posibles problemas de las fórmulas.

En esta sección se definen los diferentes tipos de contexto: contexto de la fila, contexto de la consulta y contexto del filtro. Explica cómo se evalúa el contexto para las fórmulas en las columnas calculadas y en las tablas dinámicas.

La última parte de este artículo proporciona vínculos a ejemplos detallados que ilustran cómo cambian los resultados de las fórmulas según el contexto.

Descripción de contexto

Las fórmulas de Power Pivot pueden verse afectadas por los filtros aplicados en una tabla dinámica, por relaciones entre las tablas y por filtros utilizados en fórmulas. El contexto es aquello que permite llevar a cabo análisis dinámicos. Entender el contexto es importante para generar fórmulas y solucionar problemas.

Hay diferentes tipos de contexto: contexto de fila, contexto de consulta y contexto de filtro.

El contexto de fila se puede entender como "la fila actual". Si ha creado una columna calculada, el contexto de la fila está formado por los valores de cada fila individual y los valores de las columnas que están relacionadas con la fila actual. También hay algunas funciones (Función EARLIER Function y Función EARLIEST) que obtienen un valor de la fila actual y después lo usan al realizar una operación con una tabla completa.

El contexto de consulta hace referencia al subconjunto de datos que se crea implícitamente para cada celda en una tabla dinámica, dependiendo de los encabezados de columna y fila.

El contexto de filtro es el conjunto de valores permitido en cada columna, basado en las restricciones de filtro que se aplicaron a la fila o que se han definido por expresiones de filtro dentro de la fórmula.

Volver al principio

Contexto de fila

Si crea una fórmula en una columna calculada, el contexto de fila para esa fórmula incluye los valores de todas las columnas en la fila actual. Si la tabla se relaciona con otra tabla, el contenido también incluye todos los valores de esa otra tabla que están relacionados con la fila actual.

Por ejemplo, suponga que crea una columna calculada, =[Freight] + [Tax],

, que agrega y dos columnas de la misma tabla. Esta fórmula se comporta como las fórmulas de una tabla de Excel, que automáticamente hacen referencia a los valores de la misma fila. Observe que las tablas son diferentes de los intervalos: no puede hacer referencia a un valor de la fila antes de la fila actual mediante la notación del intervalo y no puede hacer referencia a cualquier valor único arbitrario en una tabla o celda. Siempre debe trabajar con tablas y columnas.

El contexto de la fila sigue automáticamente las relaciones entre las tablas para determinar qué filas de las tablas relacionadas están asociadas a la fila actual.

Por ejemplo, la fórmula siguiente utiliza la función RELATED para capturar un valor de impuesto de una tabla relacionada, en función de la región a la que se envió el pedido. El valor del impuesto se determina utilizando el valor para la región en la tabla actual, para ello, se busca la región en la tabla relacionada y, posteriormente, se obtiene la tasa impositiva para esa región de la tabla relacionada.

= [Freight] + RELATED('Region'[TaxRate])

Esta fórmula obtiene simplemente la tasa impositiva para la región actual, en la tabla Region. No necesita conocer o especificar la clave que conecta las tablas.

Contexto de varias filas

Además, DAX incluye funciones que iteran los cálculos sobre una tabla. Estas funciones pueden tener varias filas actuales y contextos de filas actuales. En términos de programación, puede crear fórmulas que repitan un bucle interno y externo.

Por ejemplo, suponga que un libro contiene una tabla Products y una tabla Sales. Es posible que desee pasar por la tabla de ventas completa, la cual está llena de transacciones que implican a varios productos, y encontrar la cantidad más grande que se haya pedido para cada producto en cualquiera de las transacciones.

En Excel, este cálculo requiere una serie de resúmenes intermedios, que tendrían que recompilarse si los datos cambiaran. Si es un usuario avanzado de Excel, podría compilar fórmulas de matriz que realizarían el trabajo. De forma alternativa, en una base de datos relacional podría escribir subselecciones anidadas.

Sin embargo, con DAX puede compilar una fórmula única que devuelve el valor correcto y los resultados se actualizan automáticamente cada vez que agregue datos a las tablas.

=MAXX(FILTER(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

Para obtener un tutorial detallado de esta fórmula, vea la Función EARLIER.

Para abreviar, la función EARLIER almacena el contexto de fila de la operación anterior a la operación actual. En todo momento, la función almacena en memoria dos conjuntos de contexto: un conjunto de contexto representa la fila actual para el bucle interno de la fórmula y el otro conjunto de contexto representa la fila actual para el bucle externo de la fórmula. DAX alimenta automáticamente los valores entre los dos bucles de forma que puede crear agregados complejos.

Volver al principio

Contexto de la consulta

Contexto de consulta hace referencia al subconjunto de datos que se recuperen implícitamente para una fórmula. Al anular una medida u otro campo de valor en una celda de una tabla dinámica, el motor de Power Pivot examina los encabezados de fila y columna, segmentaciones de datos y filtros de informe para determinar el contexto. A continuación, Power Pivot hace los cálculos necesarios para rellenar cada celda de la tabla dinámica. El conjunto de datos que se recuperen es el contexto de consulta para cada celda.

Dado que el contexto puede cambiar según dónde se coloque la fórmula, los resultados de esta también cambian según si se utiliza en una tabla dinámica con muchas agrupaciones y filtros, o en una columna calculada sin filtros y un contexto mínimo.

Por ejemplo, suponga que crea esta fórmula sencilla que suma los valores de la columna Profit de la tabla Sales:=SUM('Sales'[Profit]).

Si utiliza esta fórmula en una columna calculada dentro de la tabla Sales, los resultados para la fórmula serán los mismos que para la tabla completa, porque el contexto de la consulta para la fórmula siempre es el conjunto de datos completo de la tabla Sales. Los resultados reflejarán beneficios en todas las regiones, todos los productos, todos los años, etc.

Sin embargo, normalmente no desea ver los mismos resultados cientos de veces, sino que desea obtener la ganancia correspondiente a un determinado año, país o región, o producto o alguna combinación de estos y, posteriormente, obtener un total general.

En una tabla dinámica, es fácil cambiar de contexto agregando o quitando los encabezados de fila y columna y agregando o quitando segmentaciones de datos. Puede crear una fórmula como la anterior, en una medida y, a continuación, colóquelos en una tabla dinámica. Siempre que agregue encabezados de columna o fila de la tabla dinámica, cambie el contexto de consulta en el que se evalúa la medida. Operaciones de filtrado y divisiones también afectan a contexto. Por lo tanto, la misma fórmula, que se usan en una tabla dinámica, se evalúa en un contexto de consulta diferente para cada celda.

Volver al principio

Contexto de filtro

El contexto de filtro se agrega al especificar restricciones de filtro en el conjunto de valores permitido en una columna o tabla, utilizando argumentos para una fórmula. El contexto del filtro se aplica sobre otros contextos, como el contexto de la fila o el de la consulta.

Por ejemplo, una tabla dinámica calcula los valores de cada celda basándose en los encabezados de fila y columna, como se describe en la sección anterior en el contexto de consulta. Sin embargo, dentro de las medidas o columnas calculadas que agregue a la tabla dinámica, puede especificar expresiones de filtro para controlar los valores que se usan en la fórmula. Selectivamente también puede borrar los filtros de columnas en particular.

Para obtener más información acerca de cómo crear filtros dentro de fórmulas, vea Funciones de filtro (DAX).

Para obtener un ejemplo de cómo se pueden borrar los filtros para crear totales globales, vea Función ALL.

Para obtener ejemplos de cómo borrar selectivamente y aplicar filtros dentro de fórmulas, vea Función ALLEXCEPT.

Por consiguiente, debe consultar la definición de medidas o fórmulas que se usan en una tabla dinámica, por lo que ya conoce de contexto de filtro al interpretar los resultados de las fórmulas.

Volver al principio

Determinar el contexto de las fórmulas

Al crear una fórmula, Power Pivot para Excel comprueba primero la sintaxis general y, a continuación, los nombres de las columnas y las tablas que proporciona con las posibles columnas y las tablas del contexto actual. Si Power Pivot no puede encontrar las columnas y tablas que especifica la fórmula, aparecerá un error.

El contexto se determina, según se describe en las secciones anteriores, utilizando las tablas disponibles en el libro, cualquier relación entre las tablas y los filtros que se hayan aplicado.

Por ejemplo, si ha importado recientemente algunos datos en una tabla nueva y no ha aplicado ningún filtro, todo el conjunto de columnas de la tabla forma parte del contexto actual. Si tiene varias tablas que se vinculan mediante relaciones y está trabajando en una tabla dinámica filtrada agregando los encabezados de columna y utilizando segmentaciones de datos, el contexto incluye las tablas relacionadas y cualquier filtro en los datos.

El contexto es un concepto eficaz que también puede dificultar la solución de los problemas con las fórmulas. Recomendamos comenzar con fórmulas y relaciones simples para ver cómo funciona el contexto y, posteriormente, empezar a experimentar con fórmulas simples en tablas dinámicas. La siguiente sección también proporciona algunos ejemplos de cómo las fórmulas utilizan tipos diferentes de contexto para devolver resultados de forma dinámica.

Ejemplos de contexto en fórmulas

  • La función RELATED expande el contexto de la fila actual para incluir los valores en una columna relacionada. Esto le permite realizar búsquedas. El ejemplo de este tema muestra la interacción del filtrado con el contexto de la fila.

  • La función FILTER le permite especificar las filas a incluir en el contexto actual. Los ejemplos de este tema también muestran cómo incrustar los filtros dentro de otras funciones que realizan los agregados.

  • La función ALL establece el contexto dentro de una fórmula. Puede utilizarlo para invalidar los filtros que se aplican como resultado del contexto de la consulta.

  • La función ALLEXCEPT le permite quitar todos los filtros excepto uno que especifique. Ambos temas incluyen ejemplos que le guían en el proceso de generación de fórmulas y le ayudan a entender los contextos complejos.

  • Las funciones EARLIER y EARLIEST le permiten recorrer las tablas y realizar cálculos, haciendo referencia a un valor de un bucle interno. Si conoce el concepto de recursividad y los bucles internos y externos, apreciará la eficacia que proporcionan las funciones EARLIER y EARLIEST. Si estos conceptos son nuevos para usted, debería seguir los pasos del ejemplo con atención para ver cómo se utilizan los contextos internos y externos en los cálculos.

Volver al principio

Integridad referencial

En esta sección se analizan algunos conceptos avanzados relacionados con los valores perdidos en tablas de Power Pivot que están conectadas por relaciones. Esta sección podría serle de utilidad si tiene libros con varias tablas y fórmulas complejas, y desea obtener ayuda para comprender los resultados.

Si no conoce los conceptos de datos relacionales, se recomienda que lea primero el tema de introducción, Información general de las relaciones.

Integridad referencial y relaciones de Power Pivot

Power Pivot no requiere que se aplique integridad referencial entre dos tablas para definir una relación válida. En su lugar, se crea una fila en blanco en el extremo "uno" de cada relación de uno a varios y se utiliza para administrar todas las filas que no tienen correspondencia en la tabla relacionada. De hecho, se comporta como una combinación externa de SQL.

En las tablas dinámicas, si se agrupan los datos en un extremo de la relación, todos los datos no coincidentes de la relación se agrupan y se incluyen como totales en una fila con un encabezado en blanco. El encabezado en blanco es aproximadamente el equivalente al "miembro desconocido."

Descripción del miembro desconocido

El concepto del miembro desconocido le resultará probablemente familiar si ha trabajado con sistemas de base de datos multidimensionales, como SQL Server Analysis Services. Si el término es nuevo para usted, el siguiente ejemplo explica lo que es el miembro desconocido y cómo afecta a los cálculos.

Supongamos que está creando un cálculo que suma las ventas mensuales de cada almacén, pero en una columna de la tabla Sales falta un valor para el nombre del almacén. Dado que las tablas Store y Sales están conectadas por el nombre de almacén, ¿qué espera que ocurra en la fórmula? ¿Cómo debería la tabla dinámica agrupar o mostrar las cifras de ventas que no están relacionadas con un almacén existente?

Este problema es común en almacenamiento de datos, donde las tablas de datos grandes se deben relacionar lógicamente con tablas de dimensiones que contienen información sobre los almacenes, regiones y otros atributos que se utilizan para categorizar y calcular hechos. Para resolver el problema, cualquier nuevo hecho que no esté relacionado con una entidad existente se asignará temporalmente al miembro desconocido. Por eso los hechos no relacionados aparecerán agrupados en una Tabla dinámica bajo un encabezado en blanco.

Tratamiento de valores en blanco frente a la fila en blanco

Los valores en blanco son diferentes de las filas en blanco que se agregan para alojar el miembro desconocido. El valor en blanco es un valor especial que se utiliza para representar valores NULL, cadenas vacías y otros valores perdidos. Para obtener más información acerca del valor en blanco así como de otros tipos de datos DAX, vea Tipos de datos en modelos de datos.

Volver al principio

Ampliar sus conocimientos de Office
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×