Tutorial Power BI: Periodos o dimensiones dinámicas

Seguramente te habrás preguntado alguna vez si es posible disponer de un informe de Power BI en el que puedas cambiar el tipo de análisis temporal del informe de semanal a mensual o anual por ejemplo.
Del mismo modo que los periodos temporales, puede que tu necesidad sea cambiar el análisis, por ejemplo, de Productos a Familias de Productos o pasar de analizar las ventas por Clientes a analizarlas por Comercial con un sólo click.
En ambos casos, necesitas una dimensión dinámica, esto es, que puedas cambiar el eje de análisis de manera sencilla. en caso de que lo que necesites sea cambiar la métrica a medir (variar entre mostrar ventas o margen por ejemplo), te recomiendo este otro tutorial de vandalytic sobre Medida dinámica en una visualización.
Jerarquías de análisis
Lo primero que nos viene a la cabeza será poner las diferentes dimensiones en el eje de nuestro gráfico y así poder ir cambiando o profundizando en las diferentes dimensiones, pero esto sólo nos sirve para una visualización. Si tenemos un informe con varios gráficos tendríamos que ir cambiando manualmente la dimensión en cada uno de ellos.
Si os fijáis en la imagen animada siguiente, hemos incluido en el eje X los 3 campos temporales (Año, Mes, Semana) y gracias a las flechas de navegación de la visualización, podemos cambiar el tamaño del periodo en este gráfico concreto:

Dimensiones o Ejes Dinámicos
Una de las opciones es disponer de una medida en el eje X, pero si intentáis introducir una medida en el eje X de, por ejemplo, un gráfico de columnas veréis que no es posible a día de hoy. Por lo tanto, tendremos que recurrir a algún truco para conseguirlo.
En nuestro ejemplo del tutorial, construiremos un informe en el que podremos cambiar de periodo semanal a mensual o anual con un simple click todas las visualizaciones de la página.
Primer Paso: Crear una Tabla de Fechas
En este caso, debemos disponer de una tabla o dimensión fecha. Si no sabes como crear una, en este otro tutorial de vandalityc te contamos como Crear tabla de fechas (4 alternativas). En este caso he optado por la opción de una tabla fechas creada en Power Query, luego explicaremos el porqué.

Segundo Paso: Crear Una Tabla Fecha (Unpivot)
Con la tabla de Fecha anterior no tenemos suficiente, ya que necesitamos disponer de un sólo campo que contenga todos los valores necesarios (años, meses y semanas en este caso). Ese es el campo que mostraremos en el eje X de nuestras visualizaciones.
Esta nueva tabla la conseguiremos a través de la transformación Unpivot de Power Query, por eso necesitábamos crear la tabla fecha también en el Editor de Consultas de Power Pivot.
Lo primero es crear un duplicado de nuestra actual tabla de Fechas. Para ello, abrimos el Editor de Consultas y pulsamos con el botón derecho sobre la tabla y seleccionamos la opción “Duplicar”:

A la nueva tabla la llamaremos Fecha (Unpivot). Una vez creada, seleccionamos los campos Año, Mes y Semana y con ellos seleccionamos pulsamos la opción Unpivot (Anular Dinamización de Columnas en español) de la pestaña Transformar:

Al realizar esta acción la tabla transformará las columnas seleccionadas por 2 columnas: una llamada Atributo que incluye el nombre de cada columna transformada y otra llamada Valor con el valor de esa columna para ese registro. Fíjate que el número de registros ha crecido, ya que por cada registro inicial, la transformación ha creado un registro por cada valor en las columnas seleccionadas (en nuestro caso 3 registros por cada registro inicial):

Como veis en la imagen anterior, he añadido un campo personalizado que indica el orden en el que quiero que se muestren los atributos (periodos). Lo podéis crear como una columna condicional:

Este campo nos servirá para poder ordenar el botón/filtro del tipo de periodo a mostrar (Semana/Mes/Año) en el orden que queremos y no alfabéticamente.
Tercer Paso: Relaciones entre tablas
Cerramos el Editor de Consultas y en la pestaña de Relaciones de Power BI Desktop, debemos tener la tabla de hechos y nuestras 2 tablas de Fecha con las siguientes relaciones:
- Una relación unidireccional 1:n entre Fecha y Ventas (nuestra tabla de Hechos) a través del campo Fecha.
- Una relación unidireccional 1:n entre Fecha y Fecha (Unpivot) a través del campo Fecha.
Necesitamos que la segunda relación (Fecha-Fecha(unpivot)) sea bidireccional para que todo funcione correctamente, por lo que pulsaremos sobre esta relación (botón derecho del ratón) y en Propiedades cambiaremos la Dirección de Única a Ambas (Both):

Cuarto Paso: Crear Visualización
Ahora si creamos una visualización con el campo ‘Fecha (Unpivot)’ [Valor] en el eje X y el campo Ventas [Venta] en el eje Y, tendremos un eje dinámico que cambiaremos a través de un filtro por el campo ‘Fecha (Unpivot)’ [Atributo]:

Quinto Paso (Opcional): Evitar relación “Both” o “Ambas”
Seguro que muchos habéis dudado o puesto el grito en el cielo con el cambio de relación a “Ambas”. Si seguís las enseñanzas de grandes maestros como Marco Russo, sabréis que no siempre son recomendables este tipo de relaciones.
Para evitarlo, podemos usar la función CROSSFILTER de DAX:
- Volvemos a configurar la relación como Dirección Única.
- Creamos una nueva medida (formula más abajo) utilizando CROSSFILTER.
- En la visualización anterior, cambiamos en el eje Y el campo ‘Ventas'[Venta] por la nueva medida.
La formula DAX de la nueva medida es:
Ventas Periodo = CALCULATE(SUM(Ventas[Venta]),CROSSFILTER(Fecha[Fecha],'Fecha (Unpivot)'[Fecha],Both))El resultado es el mismo y limitamos la relación bidireccional sólo a esta medida:

Sexto Paso (Opcional): Títulos Dinámicos
Como se puede observar en el gif anterior, los títulos de los gráficos también cambian al seleccionar el tipo de periodo (Semana, Mes, Año). Para ello podemos crear una medida que construya en título en cada gráfico con el siguiente código DAX:
Titulo Ventas = "VENTAS POR "& UPPER(MAX('Fecha (Unpivot)'[Atributo]))Una vez creada la medida y asignado el tipo de dato Texto, podemos ir a las propiedades de la visualización > Título y en vez de poner un Título manualmente pulsar sobre fx:

En la pantalla que aparece sólo debemos seleccionar la medida anterior, indicando así que el valor de la medida nos proporcionará el título:

El informe Final
Os comparto la visualización del informe final de este tutorial de Power BI, podéis maximizarlo y jugar con el selector superior de periodos para ver como cambia todo el informe dinámicamente:
Recordad que si queréis acceder al fichero pbix original de este tutorial (y del resto de post y tutoriales de vandalytic) sólo tenéis que suscribiros de manera gratuita a nuestra newsletter al final de este post.
Conclusiones
Aunque es un poco más laborioso, poder cambiar todos los rangos de fechas con un simple botón puede proporcionarnos una mayor usabilidad de nuestro informe y, por lo tanto, una mayor aceptación y uso por parte de los usuarios a los que está destinado el mismo.
Es importante que penséis a la hora de diseñar el informe en la forma de utilizarlo y las necesidades de los usuarios finales. Pequeños ajustes como este pueden marcar la diferencia entre un informe exitoso o un informe infrautilizado o incluso olvidado.
¿Vosotros que opináis? ¿Conocéis otra manera de crear periodos o dimensiones dinámicas? ¿Creéis que el usuario final lo apreciará? Dejad vuestros comentarios en este post.







Súper útil!!!! Muchas gracias!!!
Ya me he suscrito, pero no sé cómo conseguir el fichero original. ¿Me podrían ayudar?
Muchas gracias. Saludos,
Chema Ortega (José Manuel Ortega García sierranevadita7@gmail.com 661 321 101)
Hola Jose Manuel,
siento la tardanza en la respuesta. Y tienes en tu correo las claves de acceso para poder descargarte los ficheros originales.
Gracias por suscribirte!
Hola ya me inscribe pero igual no puedo ver lo ficheros
Hola marcos,
No me apareces en la lista de suscritos a la newsletter con este mail. ¿Podrías darte de alta de nuevo en la newsletter? De este modo se enviarán las claves de nuevo.
Un saludo,
Hola… me inscribe pero no puedo ver lo ficheros
Hola Daniel,
Gracias por suscribirte. Te he mandado un mail con la contraseña.
Hola Saludos desde Costa Rica, me inscribe pero no puedo ver lo ficheros
Hola Nilhs,
acabo de mandarte un mail con los datos de acceso a los ficheros pbix de nuestros tutoriales.
¡Gracias por suscribirte!
Hola,
acabo de inscribirme pero no puedo acceder a los ficheros ya que me pide una contraseña que no tengo.
No se si tengo que hacer algo más que enviar el mail de confirmación.
Hola Pedro,
¡Gracias por suscribirte! Te acabo de mandar un mail con las contraseñas.
Un saludo,
Excelente post, clara la explicacion y con una didactica clara….
Gracias Luis!!! :D
Saludos !!!
Ya hice mi suscripción.
Ojala me puedas apoyar con la descarga del pbix y la contraseña.
Muchas gracias.
Hola Antonio,
¡gracias por suscribirte! Te he mandado ya las contraseñas para que puedas acceder a los ficheros pbix de nuestros tutoriales.
Un saludo,
Hola Iván hice la suscripción pero aún no recibo la contraseña para poder ver los ficheros, ojala me puedas ayudar para poderlos descargar.
Gracias!!
Hola Alexandra,
Veo que apareces en la lista, pero no estás suscrita aún. Revisa el correo porque debería llegarte un mail (mira en SPAM o No deseado) en el que debes pulsar un link para verificar que quieres suscribirte.
Cuando completes la suscripción te llegará la contraseña de acceso.
Si sigue dándote problemas, dímelo.
siento las molestias
Hola quisiera preguntarte cómo se haría en el caso en el que uno quiera mostrar la gráfica como cuando usa fecha con orden jerárquico (año-mes-día) y también la semana, es decir, que se segmente por fecha completa o por semana.
Gracias!
Hola, intento ingresar con la contraseña que me enviaron al correo pero no puedo acceder. Que puede estar ocurriendo disculpe?
Gracias de antemano!
Hola Odalis,
gracias por tu comentario, había un error en la contraseña del mail de bienvenida a los nuevos suscriptores. Te acabo de mandar un mail con la nueva contraseña.
Un saludo,