Published on

October 3, 2020

Cómo realizar análisis de varianza en cubos OLAP de SQL Server

Cuando se trabaja con cubos OLAP en SQL Server, es común que los usuarios finales deseen comparar valores de diferentes períodos para realizar análisis de varianza. Sin embargo, no se permite crear campos calculados dentro de las tablas dinámicas de Excel basadas en OLAP. Entonces, ¿qué se puede hacer para realizar estas comparaciones?

Una solución es utilizar la función ParallelPeriod en MDX (Expresiones Multidimensionales). Esta función le permite comparar fácilmente valores de diferentes períodos dentro de la misma medida. Veamos cómo se puede hacer esto.

Primero, debe determinar qué medidas requieren análisis de varianza y qué jerarquía de dimensión de tiempo comparar entre períodos. Por ejemplo, es posible que desee comparar la medida de Monto de ventas por Internet utilizando la jerarquía de Fecha del calendario.

A continuación, puede utilizar la función ParallelPeriod para determinar el valor para el mismo período en el año anterior. La función requiere tres argumentos: la expresión de nivel (por ejemplo, Año calendario), el índice o número de períodos de retraso a retroceder (por ejemplo, 1 para un año) y la expresión de miembro en la que actuar (por ejemplo, CurrentMember de la jerarquía de dimensión Fecha.Calendario).

Aquí hay un ejemplo de la medida calculada utilizando la función ParallelPeriod:

--Medida calculada
SI([Fecha].[Calendario].CurrentMember.level.ordinal = 0, [Medidas].[Monto de ventas por Internet], 
(ParallelPeriod([Fecha].[Calendario].[Año calendario], 1, [Fecha].[Calendario].CurrentMember),[Medidas].[Monto de ventas por Internet]))

En el ejemplo anterior, la medida calculada verifica si el CurrentMember está en el nivel base del atributo de fecha. Si es así, muestra el valor total. De lo contrario, utiliza la función ParallelPeriod para encontrar el valor para el mismo período en el año anterior.

Una vez que se haya implementado la funcionalidad de ParallelPeriod, puede continuar desarrollando su análisis de varianza. Por ejemplo, puede calcular la varianza entre el período actual y el período anterior, así como el porcentaje de varianza.

Aquí hay ejemplos de los cálculos:

--Encabezado con medidas
Varianza: [Medidas].[Monto de ventas por Internet] - [Medidas].[Monto de ventas por Internet del período paralelo]
Varianza %: [Medidas].[Variance del período paralelo de ventas por Internet] / [Medidas].[Monto de ventas por Internet del período paralelo]

Utilizando estos cálculos, puede realizar fácilmente análisis de varianza en sus cubos OLAP. Sin embargo, puede haber casos en los que no haya valor para el período anterior, lo que resulta en errores. Para solucionar este problema, puede verificar la ausencia de un valor del período anterior utilizando la función MDX IsEmpty.

Aquí hay un ejemplo de una medida calculada que verifica la ausencia de un valor del período anterior:

--Medida calculada para verificar la ausencia de un valor del período anterior
CREATE MEMBER CURRENTCUBE.[Medidas].[Variance% del período paralelo de ventas por Internet v2] AS 
SI(IsEMPTY((ParallelPeriod([Fecha].[Calendario].[Año calendario], 1, [Fecha].[Calendario].CurrentMember),[Medidas].[Monto de ventas por Internet]))) O 
(ParallelPeriod([Fecha].[Calendario].[Año calendario], 1, [Fecha].[Calendario].CurrentMember),[Medidas].[Monto de ventas por Internet]) = 0, 
0, [Medidas].[Variance del período paralelo de ventas por Internet] / [Medidas].[Monto de ventas por Internet del período paralelo]), 
FORMAT_STRING = "Percent", VISIBLE = 1, ASSOCIATED_MEASURE_GROUP = 'Ventas por Internet';

Con esta medida calculada, puede manejar casos en los que no haya valor para el período anterior, evitando errores en su análisis.

En conclusión, realizar análisis de varianza en cubos OLAP de SQL Server requiere planificación y el uso de funciones MDX como ParallelPeriod. Al utilizar estas funciones, puede crear fácilmente una infraestructura de varianza para sus medidas y navegar por la jerarquía de dimensión de tiempo para cualquier atributo por debajo del nivel de período paralelo. Este método proporciona flexibilidad y análisis preciso para sus cubos OLAP.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.