Integración de previsiones presupuestarias y otros datos a diferente granularidad en Power BI

Introducción

El modelado de previsiones presupuestarias constituye uno de los escenarios más desafiantes en el campo del diseño y explotación de modelos de datos en Power BI. Las estructuras de datos en dicha herramienta se basan en el motor de Analysis Services y en la tecnología xVelocity (previamente denominada VertiPaq); de hecho, al ejecutar un archivo .pbix se inicia a su vez una instancia tabular de SSAS (SQL Server Analysis Services) en un puerto aleatorio.

En el modelo tabular, a diferencia de lo que ocurre en el multidimensional, las relaciones entre tablas se establecen utilizando una sola columna, que requiere que sus valores sean únicos en la tabla de búsqueda, por lo que no podemos definir relaciones entre hechos y dimensiones a diferentes granularidades directamente.

En este artículo veremos cómo manejar las relaciones entre tablas con distinta granularidad, escenario típico cuando tratamos de incluir previsiones presupuestarias en nuestro modelo. En este tema cada empresa es un mundo y todo depende del nivel de detalle al que se hayan definido dichas previsiones, pero el problema consiste a menudo en que la granularidad del presupuesto es completamente distinta a la del resto del modelo de datos.

Seguir leyendo «Integración de previsiones presupuestarias y otros datos a diferente granularidad en Power BI»

Textos y títulos dinámicos en Power BI

Textos dinámicos con DAX

Siempre me ha gustado crear medidas de texto que sean capaces de interpretar y explicar ciertos resultados en lenguaje natural al usuario. Creando expresiones DAX mediante el uso de variables, campos y otros elementos programáticos conseguiremos que, en función de los filtros seleccionados por el usuario, el texto de la visualización se modifique dinámicamente, actuando casi como un analista de datos automatizado capaz de evaluar distintos escenarios y ofrecernos de una forma muy sencilla la respuesta que buscamos.

Por ejemplo, en la siguiente imagen podemos ver una medida que nos explica los aspectos clave de la rentabilidad financiera teniendo en cuenta el contexto de filtro aplicado por el usuario:

Image 1

Seguir leyendo «Textos y títulos dinámicos en Power BI»

Dimensión horaria en M

En casi cualquier modelo de datos que diseñemos será imprescindible disponer de una dimensión temporal que nos permita filtrar y segmentar los datos de las tablas de hechos en función de los atributos temporales que nos interesen en cada momento. La dimensión temporal más común y útil corresponde a aquella de nivel de granularidad diario, donde tendremos un registro por cada día del periodo abarcado por dicha dimensión.

Por otra parte, atributos relacionados con la dimensión horaria utilizados para describir los eventos registrados en las tablas de hechos aparecen con mucha menor frecuencia. No obstante, en algunas ocasiones en las que el tiempo queda registrado con un nivel de detalle inferior al día, la posibilidad de segmentar los datos por dichos atributos se convierte en uno de los temas principales a la hora de diseñar un almacén de datos analítico.

Seguir leyendo «Dimensión horaria en M»

Análisis económico-financiero en Power BI

Introducción

Los informes económico-financieros, basados principalmente en las normas de registro y valoración de los diferentes elementos que componen los estados financieros que deben elaborarse bajo el Plan General de Contabilidad, han sido históricamente un proceso complejo y estático, que proporciona información limitada y con horizontes temporales predefinidos (cierre trimestral, anual…), con la que no podemos interactuar y profundizar en aquellos aspectos que nos interesan en cada momento, algo necesario si realmente queremos poder obtener información relevante y evaluar en detalle la evolución de las magnitudes empresariales en relación a sus objetivos.

Las herramientas de inteligencia de negocios nos permiten ir mucho más allá en la elaboración de este tipo de informes, tanto si se basan principalmente en la contabilidad financiera y se dirigen a los grupos de interés externos a la empresa, como si utilizan un amplio abanico de orígenes de datos internos y externos, y sus destinatarios principales son los directivos de la empresa, con el objetivo de facilitar la toma de decisiones en cualquier momento y lugar, proporcionando un instrumento de planificación, información y control simultáneo y dinámico de las diferentes partes de una organización, aumentando la capacidad de la empresa de crear valor económico.

Seguir leyendo «Análisis económico-financiero en Power BI»

Estructuras jerárquicas en tablas de hechos

Introducción

Un escenario muy frecuente cuando utilizamos bases de datos relacionales como origen de datos principal de un modelo que reproduce un proceso de negocio, como pueden ser las ventas de una empresa, es encontrarnos con dos tablas de hechos con distinta granularidad para describir el mismo proceso. Una de ellas contendrá un registro por cada ticket, albarán o factura emitida con los atributos generales de fecha, cliente, base imponible, impuesto etc., y la otra irá un poco más allá y registrará las ventas a nivel de cada producto vendido, es decir, existirá un registro por cada línea de detalle dentro de cada documento.

En la siguiente imagen podemos ver un ejemplo de esta situación, donde tanto los albaranes como las facturas presentan una estructura de datos del tipo descrito:

Seguir leyendo «Estructuras jerárquicas en tablas de hechos»

Medidas semi-aditivas en DAX

En cualquier sistema de BI, podemos crear cálculos o medidas de 3 tipos distintos:

  • Medidas aditivas: son generalmente la mayor parte de las medidas que nos encontraremos en un modelo de datos analítico, y se caracterizan porque podemos usar la función SUM() para agregar sus valores en función de cualquier atributo dimensional. Un ejemplo típico pueden ser las ventas, cuyo total podemos desglosar en la suma de las ventas por producto, por mes, por cliente, así como por cualquier otro atributo que nos interese para filtrar o segmentar dicho cálculo.
  • Medidas semi-aditivas: son las más complejas y en las que vamos a profundizar en este artículo. Este tipo de cálculos pueden usar la función SUM() para agregar sus valores solo en función de determinadas dimensiones, pero se necesita otro tipo de agregación distinta para segmentar por los atributos de alguna otra dimensión. Ejemplos típicos de este tipo de medidas son las tablas de inventarios y las de los saldos de las cuentas contables, que no pueden agregarse en función de los atributos de la dimensión temporal mediante una suma simple.
  • Medidas no aditivas: son aquellas que no pueden agregarse usando la función SUM() en función de ninguno de los atributos presentes en el modelo de datos. Un ejemplo típico es el tipo de cambio de una moneda respecto a otra.

Seguir leyendo «Medidas semi-aditivas en DAX»

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»

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»