Uso de la función USERELATIONSHIP en columnas calculadas

Introducción

En un modelo tabular con relaciones inactivas podemos usar la función USERELATIONSHIP() para activar una de ellas durante el tiempo de ejecución de un determinado cálculo con DAX. Para ello, simplemente tenemos que especificar dicha función (y los parámetros correspondientes) como uno de los argumentos de filtro de la función CALCULATE(). El uso de USERELATIONSHIP() es sencillo cuando queremos crear una medida, pero se complica si lo que deseamos es utilizar dicha función en la definición de una columna calculada. En este artículo vamos a ver qué es lo que ocurre en estos casos, explicando uno de los aspectos más importantes que se produce cuando ejecutamos la función CALCULATE() dentro de una columna calculada, o de forma más general, dentro de un contexto de fila: la transición de contexto.

Seguir leyendo «Uso de la función USERELATIONSHIP en columnas calculadas»

Estructuras de datos en entornos analíticos

Cuando diseñamos un modelo de datos analítico, uno de los aspectos clave a tener en cuenta corresponde al nivel de normalización/desnormalización con que queremos dotar a la estructura del mismo. Es probable que la mayoría de los orígenes de datos que utilicemos a nivel profesional correspondan a sistemas de procesamiento de transacciones (OLTP). Estos sistemas son bases de datos relacionales optimizadas para llevar a cabo las tareas diarias de una oficina, principalmente la gestión de pedidos, facturas, reclamaciones, realización de asientos contables, etc…

En estos sistemas nos encontraremos normalmente con estructuras altamente normalizadas, donde prácticamente cada atributo se almacena en una tabla y, por lo tanto, un solo objeto, como por ejemplo «Cliente», estará almacenado en 10 o 20 tablas distintas relacionadas entre sí. Esto se debe a que dichas bases de datos OLTP están diseñadas para gestionar continuas operaciones de introducción y modificación de datos, por lo que una estructura de este tipo proporciona la ventaja de ahorrar tamaño en disco (lo que normalmente se traducirá en mayor velocidad) y que los cambios que introduzcamos en un atributo solo tengan que actualizarse una vez.

Seguir leyendo «Estructuras de datos en entornos analíticos»

Tasas de variación e Inteligencia de Tiempo

Introducción

Data Analysis Expressions (DAX) incluye la importante funcionalidad de Time Intelligence o inteligencia de tiempo, funciones integradas en el lenguaje con las que podemos manipular y agregar datos en función de periodos temporales para construir y comparar cálculos sobre dichos periodos. Este tipo de análisis de series temporales es esencial en cualquier modelo de datos.

Aunque Time Intelligence es un tema muy amplio al que dedicaremos varios artículos, en este vamos a centrarnos en uno de los intereses principales del estudio de las series temporales, que reside en la evaluación de los cambios de una magnitud a lo largo del tiempo. Estos cambios se valoran a través de las denominadas tasas de variación,que surgen de la comparación de los valores de la serie en dos periodos de tiempo distintos.

Seguir leyendo «Tasas de variación e Inteligencia de Tiempo»

Selección dinámica de medida en Power BI

Un escenario común a la hora de analizar datos es el querer mostrar distintas medidas evaluadas bajo el mismo contexto de filtro. Podemos hacer esto creando varias visualizaciones, cada una de ellas con una medida distinta. Una opción mejor, ya que hablamos del mismo contexto de filtro, sería dejar al usuario del informe la posibilidad de seleccionar en cada momento la medida a mostrar, y que una sola visualización se actualizara dinámicamente en función de esta selección.

Actualmente Power BI no nos ofrece esta posibilidad como función integrada, pero con un poco de DAX podemos llevarla a cabo. Esto es lo que vamos a ver en este artículo.

Seguir leyendo «Selección dinámica de medida en Power BI»

Patrón del total acumulado en Power BI

Una medida común que encontraremos útil con frecuencia es aquella que computa el total acumulado de una métrica a lo largo de las categorías de alguna dimensión, normalmente el tiempo. El acumulado (ya sea como suma, promedio o cualquier otro tipo de agregación), es uno de los cálculos más utilizados a la hora de analizar los datos de un negocio, debido a que nos proporciona la capacidad de ver y comprender claramente los aspectos relacionados con las tendencias que se producen en los datos. En este artículo analizaremos el problema desde algunos de los escenarios más comunes que nos encontraremos en el momento de desarrollar este tipo de cálculo.

Escenario 1: Total anual hasta la fecha

Es probable que una de las primeras medidas que nos interese evaluar sea las ventas acumuladas de productos a lo largo del tiempo, teniendo en cuenta cada año del contexto de filtro, de forma que el cálculo se resetee al inicio de cada año. Para ello podemos usar en un primer lugar una de las funciones de inteligencia de tiempo incorporadas en DAX llamada TOTALYTD:

Seguir leyendo «Patrón del total acumulado en Power BI»

La función USERELATIONSHIP

En cualquier modelo de datos es relativamente frecuente la necesidad de analizar un mismo parámetro en función de fechas distintas que describen un mismo evento. Por ejemplo, podemos disponer de una tabla de pedidos donde, para cada uno de ellos, tengamos una fecha de pedido, una de entrega y una de envío. Pueden existir varias relaciones entre dos tablas en un modelo tabular, pero solo una de ellas puede permanecer activa durante la realización de un cálculo determinado, requiriendo la desactivación de las demás:

Image 3

Seguir leyendo «La función USERELATIONSHIP»

Días festivos nacionales en dimensión temporal

Aquellos profesionales que trabajan en temas relacionados con la gestión analítica de los datos de una empresa, conocen que existen multitud de análisis interesantes que dependen íntegramente de la dimensión temporal del modelo de datos. Sin una dimensión temporal cuyos metadatos se adapten a las características de la empresa en cuestión, nos resultará difícil captar aquellos elementos que marcan la diferencia y constituyen el verdadero valor añadido proporcionado por las herramientas de inteligencia de negocios en la toma de decisiones empresariales.

En algunos negocios, es especialmente importante la incidencia de los días festivos. Si por ejemplo estamos analizando las ventas de un restaurante, las llamadas entrantes en un call center o las estadísticas de una página web, probablemente encontraremos diferencias significativas en los datos en función de si el día es festivo o no. En este artículo vamos a ver cómo podemos extraer esta información en tiempo real desde API’s en línea y añadirla a nuestra dimensión temporal.

Seguir leyendo «Días festivos nacionales en dimensión temporal»

Grupos de medidas en Power BI Desktop

En numerosas ocasiones, cuando estamos trabajando con modelos de datos complejos, con muchas tablas y relaciones, y que requieren un número considerable de medidas, es importante tener en cuenta el lugar de almacenamiento de las mismas. Por ejemplo, es probable que tras cargar al modelo de datos todas las consultas necesarias para obtener la información que el usuario precisa, nos encontremos en la vista de relaciones con algo así:

Image 3

Seguir leyendo «Grupos de medidas en Power BI Desktop»

Dimensión temporal en M

Una de las dimensiones críticas a la hora de crear un modelo de datos analítico es, sin duda, la dimensión temporal. En los últimos años, las herramientas de inteligencia de negocios suelen incluir una jerarquía temporal automática que se crea a partir de los campos de fecha presentes en el modelo. La pregunta es:

¿Necesito una tabla separada como dimensión temporal en el modelo de datos, o me vale con usar las jerarquías automáticas que me ofrecen estas herramientas?

Seguir leyendo «Dimensión temporal en M»