Vamos a terminar el ejemplo que comenzamos la vez anterior. Preparamos los datos para crear una tabla de Tiempos, como tabla maestra que nos permita analizar los datos y aplicar BI con filtros de tiempo.
Hoy vamos a crear columnas calculadas, relacionar tablas en la ventana PowerPivot, marcar la tabla tipo Date y verlo desde la tabla dinámica… empezamos !!!
Columnas calculadas con DAX
DAX es el lenguaje de fórmulas del que disponemos en PowerPivot. Hoy vamos a utilizar una de las tantas funciones integradas. Vamos a crear una columna calculada utilizando la función Year() de DAX, queremos obtener los años de cada día en la tabla Tiempo.
=YEAR([Fecha])
Lo mismo hacemos para la tabla SalesOrderHeader, donde agregamos la nueva columna AñoOrderDate que muestra los valores de los años y nos sirve para describir el dato, por ejemplo TotalDue.
DAX
Permítanme un comentario antes de continuar con nuestro ejemplo.
Queda todo por ver en cuanto a DAX, especialmente en lo relacionado con Time Intelligence o inteligencia de tiempos, para cumplir con las necesidades de análisis de BI. Estas funciones permiten manipular los datos utilizando períodos de tiempo incluyendo días, meses, trimestres, y años, así como comparar cálculos sobre estos períodos. Nos iremos acercando a DAX en la medida que vayamos mejorando nuestro modelo.
Algunos avances sobre estas funciones tenemos en el blog La biblioteca de PowerPivot, de los amigos de SolidQ.
Tenemos además, documentación sobre funciones DAX en español y también en inglés.
Relaciones entre fechas
Una vez asignada la columna correcta, creamos las relaciones entre esta tabla y las columnas, de tipo Date que encontramos, por ejemplo en SalesOrderHeader, todas las relaciones tiran contra esta tabla de tiempos, como está recomendado por MS.
Desde la vista Diagrama es muy fácil crear las relaciones.
Aquí tenemos las 3 relaciones desde SalesOrderHeader hacia Tiempo, algo que no podíamos en la versión anterior de PowerPivot.
Podemos ver el estado de las relaciones, y ver que tenemos una única relación activa.
Mark as Date Table
Marcamos la tabla Tiempo como tipo Date y lo que hay que hacer es definir cuál es la columna adecuada para identificar la tabla. Tal y como vemos en el mensaje ha de ser una columna con datos tipo Date y con valores únicos. La columna Fecha cumple muy bien estos requerimientos.
Si intentamos asignar una columna que no cumpla con estos requerimientos, PowerPivot devuelve un error.
Filtro de tiempos en tabla dinámica
En la tabla dinámica veamos la diferencia de comportamiento entre una tabla seleccionada como Date y una que no.
Si seleccionamos la columna AñoOrderDate de la tabla SalesOrderHeader e intentamos filtrar las opciones son las siguientes:
Sin embargo, si seleccionamos la columna Año de la tabla Tiempo y realizamos la misma acción, las opciones son las siguientes:
Como vemos hay posibilidad de analizar por rangos de fechas.
Un ejemplo de la utilización de estos filtros lo tenemos en las imágenes siguientes:
Hemos terminado este ejemplo y con ello el recorrido por la ficha Design.
En la próxima entrada vamos a utilizar DAX para crear columnas calculadas aplicando relaciones entre tablas. Y esto lo haremos en el marco de la revisión de la ventana PowerPivot para SQL Server 2012, en este caso trataremos la ficha Advanced.
Primero Felicidades Ana por tus grandes artículos, y sobre todo por tus conocimientos !!!!!.
Poco a poco me estoy formando con las PowerPivot 2013, y las explicaciones de MS sobre la función LOOKUPVALUE no me aclarar su funcionalidad y aplicación. Te ruego me indiques en qué capítulos explicas esta función, y si me pudieras adjuntar un pequeño fichero con un ejemplo te lo agradecería en el alma.
Muchas gracias por tu atención, y felicidades.
Un cordial saludo desde Madrid, España.
Me gustaMe gusta
Hola Javier, Buenas tardes
Gracias por tu amable mensaje.
Me temo que no he descrito el funcionamiento de LOOKUPVALUE(), apenas he escrito algunas funcionalidades de DAX, lo siento.
Te dejo un par de enlaces donde se ven en castellano.
http://www.poweredsolutions.co/es/2014/02/10/utilizando-buscarv-vlookup-con-power-pivot-y-dax-lookupvalue/
https://msdn.microsoft.com/es-es/library/gg492170(v=sql.120).aspx
Y otro par que las trata en inglés
https://thedataspecialist.wordpress.com/2013/02/16/equivalent-of-vlookup-in-daxpart-i/
http://www.dutchdatadude.com/power-bi-pro-tip-lookupvalue-function/
Y ya que estás en Madrid, te recomiendo te unas al Grupo de usuarios Power BI en España, te puede resultar de utilidad http://community.powerbi.com/t5/Power-BI-Spain-Users-Group/gp-p/PUG130
Te recomiendo además, mantenerte en sintonía con la comunidad PASS Spain, donde también puedes encontrar información muy valiosa http://www.sqlpass.es/
Suerte Javier,
Saludos,
Ana
Me gustaMe gusta