Power BITutoriales

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:

Jerarquía de Dimensión
Jerarquía de Dimensión

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

Dimensión Fecha creada con Power Query
Dimensión Fecha creada con Power Query

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

Duplicar Tabla Fecha en Editor de Consulta
Duplicar Tabla Fecha en Editor de Consulta

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:

Unpivot o Anular Dinamización de Columnas
Unpivot o Anular Dinamización de Columnas

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

Tabla Fecha (Unpivot) transformada
Tabla Fecha (Unpivot) transformada

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:

Columna Condicional personalizada
Columna Condicional personalizada

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

Cambio de Dirección de la Relación a Ambas
Cambio de Dirección de la Relación a Ambas

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

Visualización Dinámica
Visualización Dinámica

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:

  1. Volvemos a configurar la relación como Dirección Única.
  2. Creamos una nueva medida (formula más abajo) utilizando CROSSFILTER.
  3. 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:

Periodos Dinámicos con Power BI
Periodos Dinámicos con Power BI

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:

Función para título dinámico
Función para título dinámico

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:

Asignar Medida a Título de visualización
Asignar Medida a Título de visualización

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.

¡SUSCRÍBETE YA!
Doy mi consentimiento para almacenar mis datos para envío de newsletters.
Si te suscribes a la newsletter tendrás acceso a los <b><u>ficheros Power BI originales</u></b> de nuestros tutoriales y post. <br><br>Además tendrás derecho a participar en sorteos periódicos que realizaremos en el blog.
We hate spam. Your email address will not be sold or shared with anyone else.
Mostrar más

Iván Arribas

Llevamos siglos generando, relacionando, modificando y almacenando datos....es hora de que les echemos un vistazo. Espero que este blog sirva de ayuda a los que quieran introducirse en este mundo de la Analítica de Datos, igual que me está sirviendo a mi.

Publicaciones relacionadas

19 comentarios

    1. 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!

    1. 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,

    1. Hola Nilhs,

      acabo de mandarte un mail con los datos de acceso a los ficheros pbix de nuestros tutoriales.

      ¡Gracias por suscribirte!

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

    1. 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,

  2. 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!!

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

  3. 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!

    1. 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,

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Iván Arribas Delgado.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a Bluehost que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Botón volver arriba
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver
Privacidad