22 septiembre 2009

Excel 2010 Technical Preview – Parte 4: La misma medida más de una vez

Siguiendo con la serie de las nuevas características de BI en Excel 2010 Technical Preview, me toca contarles o recordarles, que en la versión 2007 de Excel, sólo podemos agregar más que una vez la misma medida a un Pivot Table. Claro, la pregunta que se deben estar haciendo es: pero para qué querría yo agregar la misma medida más de una vez? Una de las respuestas podría ser, el querer mostrar en el mismo Pivot Table, el total de las ventas por categoría de producto y el porcentaje de contribución de las mismas al total de las ventas.

Una solución alternativa para lograr tener ambos valores en el mismo Pivot Table, podría ser que en nuestro cubo de Analysis Services tengamos una medida calculada adicional que realice el cálculo del porcentaje de contribución. Pero si queremos agregar otros cálculos en nuestro Pivot Table para distintos análisis, entonces tendríamos un cubo con muchas medidas calculadas lo cual no es muy elegante y puede confundir mucho al usuario a la hora de utilizar nuestro cubo: Excel 2010 al rescate!

Incluir la misma medida más de una vez es bastante sencillo, para este ejemplo empezaremos con creando un nuevo Pivot Table para mostrar la cantidad de órdenes de los resellers según tipo de negocio:

image

El pivot table panel se ve así:
image

Para agregar la misma medida una segunda vez, sólo basta hacer drag-and-drop de la misma medida hacia la sección Values  de nuestro Pivot Table panel:

image

image

Ahora para nuestra segunda medida cambiamos el tipo de cálculo en la opción “Show Value As”… “% of Column Total”:

image

image

Asi mismo podemos agregar una tercera versión de nuestra medida con un ranking usando “Rank Largest to Smallest”:

image

De curiosidad por el MDX que genera este Pivot Table, ejecuté el SQL Profiler y encontré el siguiente query:

SELECT {[Measures].[Reseller Order Count],[Measures].[Reseller Order Count],[Measures].[Reseller Order Count]} DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME ON COLUMNS , NON EMPTY Hierarchize(AddCalculatedMembers({DrilldownLevel({[Reseller].[Business Type].[All Resellers]})})) DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME ON ROWS  FROM [Adventure Works]

Como ven, la medida en el query de MDX se muestra tres veces, por tanto deducimos que lo mas  interesante de todo esto, es que los cálculos los está procesando Excel y no Analysis Services, lo cual mejora mucho el tiempo de respuesta.

Como vieron, ya no será necesario llenar nuestro cubo de medidas calculadas si tenemos Excel 2010.

Alan

1 comentario:

Manuel Enrique dijo...

Hola Alan... soy estudiante de Ing. de sistemas de la Universidad del Cauca (Colombia), actualmente estoy trabajando en mi proyecto de grado sobre un modelo de bodega de datos.. estamos creando una medida que nos permita manipular datos de tipo string... tenemos una dimension documento la cual contiene un atributo "Topics" que contiene informacion de los topicos con sus probabilidades asociados a ese documento (ej: T1:0,03; T2:0,4). con base a este atributo creamos una medida calculada la cual nos permite concatenar esta informacion, es decir, tenemos en la dimension documento una jerarquia (TipoDoc->TituloDoc)y la medida calculada:
GENERATE(EXISTING{[Dim Document].[Document Key].[Document Key].MEMBERS},
[Dim Document].[Topics].CURRENTMEMBER.NAME, " ; ")
esto nos permite obtener en SSAS:
TipoDoc TituloDoc Topics
Tipo1 - Doc1 - T1:0,2; T2:0,3
Doc2 - T4:0,1; T5:0,5
Total - T1:0,2; T2:0,3; T4:0,1; T5:0,5
Tipo2 - Doc3 - T1:0,12; T3:0,1
Doc4 - T2: 0,3; T6:0,2
Total - T1:0,12; T3:0,1; T2: 0,3; T6:0,2
como vemos la medida calculada nos permite concatenar los topicos de acuerdo al tipo de documento. Pero tenemos un inconveniente al asociar otra dimension, por ejemplo se tiene la dimension fecha y el atributo año, si el Doc1 y Doc2 petenecen al año 1986 y Doc3 y Doc4 al año 1999 deberia mostrarnos:
Año Topics
1986 - T1:0,2; T2:0,3; T4:0,1; T5:0,5
1999 - T1:0,12; T3:0,1; T2: 0,3; T6:0,2
pero al realizar la consulta en SSAS nos muestra para cada año el mismo dato y asi para las demas dimensiones. Deseariamos saber si es posible que nos pudieras ayudar con alguna informacion que nos permita mejorar esta medida calculada o si exite una funcion en mdx que nos permita crear una medida calculada y que manipule string para mostrarla como deseamos.??? de antemano agradezco tu atencion prestada y estaremos atentos a una respuesta. mi correo es memaca@unicauca.edu.co
Gracias