Business Intelligence Controlling

La nueva generación del reporting económico-financiero y el control de gestión empresarial

Categoría: Arquitectura de datos Página 3 de 4

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.

Leer más

Scripts de Python en Power BI

La integración de Python en Power BI es, sin duda, una de las funcionalidades introducidas por el equipo más importantes hasta la fecha. Al igual que R, Python nos ofrece numerosas posibilidades para realizar tareas durante el proceso de ETL en nuestras propias consultas, y crear visualizaciones atractivas y útiles mediante el uso de sus librerías orientadas a la representación gráfica de información estadística. Además, nos proporciona la capacidad de incrementar de forma exponencial la competencia analítica de nuestros informes y cuadros de mando, mediante el uso de módulos de Machine Learning capaces de identificar patrones complejos en los datos con el objetivo de predecir comportamientos futuros, proporcionándonos información de alto valor para la toma de decisiones de negocio.

Ejecutar scripts de Python en el editor de consultas

El lenguaje de programación Phyton cuenta con librerías orientadas al análisis de datos con multitud de funciones y métodos que podemos usar durante las etapas de transformación y limpieza, antes de cargar las consultas al modelo. La librería pandas nos permite manipular Data Frames con un gran número de funciones diseñadas específicamente para los procesos de preparación de datos. Vamos a ver un ejemplo donde tenemos una tabla con datos de clientes que contiene valores null en las columnas que especifican el peso y la altura de cada uno de ellos:

Leer más

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 valores numéricos 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 de 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.

Este nivel de granularidad temporal, aunque más frecuente, no será exclusivo de modelos científicos que necesiten una especial precisión temporal en el registro de los eventos que pretenden analizar, sino que podemos encontrar fácilmente casos, dentro del mundo empresarial, en los que la capacidad de filtrar los datos por atributos temporales de detalle inferior a un día nos proporcionará un valor añadido importante. Un ejemplo sencillo puede ser un restaurante, donde conocer las horas de mayor y menor afluencia de clientes será clave en la toma de decisiones relacionadas con el manejo de los horarios del personal.

Leer más

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 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…).

Dichos informes no nos permiten interactuar con los datos 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 más importantes son los propietarios y directivos de la empresa, con el objetivo de facilitar la toma de decisiones en cualquier momento y lugar, y proporcionando un instrumento de planificación, información, y control simultáneo y dinámico de las diferentes partes de la organización, aumentando de forma considerable la capacidad de la empresa de crear valor económico.

Leer más

Estructuras jerárquicas en tablas de hechos

Introducción

Un escenario muy frecuente cuando utilizamos bases de datos relacionales como origen 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:

Leer más

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.

Leer más

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.

Leer más

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 frecuentemente 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.

Leer más

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

Leer más

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í:

Leer más

Página 3 de 4

BI CONTROLLING 2026 © TODOS LOS DERECHOS RESERVADOS