Fecha actual, mes corriente, día de hoy

Cuando abrimos un informe en cualquier sistema de BI es habitual querer ver la información actual o al menos el último dato disponible y en Power BI no es posible hacerlo de una forma automática y elegante. Este requerimiento es muy habitual y dependiendo de cada conjunto de datos y su tipo de conexión puede resolverse de formas distintas.

La manera más secilla para encontrar una solución es la de añadir una columna calculada a la tabla fechas que nos diga si es la fecha actual, también podemos añadir fechas relativas como la del mes anterior por ejemplo. Muchos tendrán la duda si hacerlo mediante Power Query o bien delegarlo a DAX.

Vamos a seguir un ejemplo como forma de explicación. partimos de un conjunto de datos que ya dispone de una tabla “Fechas” y tres columnas: Fecha, Mes, Año, además de una tabla “Venta”. Queremos disponer de un filtro en los informes que nos indique el mes actual, independiente de la fecha, esto quiere decir que no hablamos de la fecha de hoy, hablamos de la última fecha con datos en el conjunto de datos. En este caso la tabla fecha se realizó a partir de los hechos por lo que solo tiene fechas en las que existan datos relacionados, pero el ejemplo sirve exactamente igual en caso que no sea así.

DAX

En Power BI Desktop añadimos una columna a la tabla “Fechas”: seleccionamos la tabla y pulsamos sobre “Nueva columna” dentro de las opciones de la cinta de “Inicio” o bien hacemos un click con el botón secundario del ratón y pulsamos sobre la misma opción “Nueva columna”.

La intención es crear una columna que contenga la diferencia de meses entre la columna fecha y el último mes con datos de venta, para ello en la barra de fórmulas escribimos

Meses de diferencia = ((12 * YEAR([Fecha])) + MONTH([Fecha])) 
- ((12 * YEAR(max(Venta[Fecha])) + MONTH(max(Venta[Fecha]))))

Creamos otra columna, que mediante una expresión condicional evaluará la fecha y los meses de diferencia para decirnos si es el actual o es anterior, le llamaremos “Mes relativo”.

Mes relativo = IF([Meses de diferencia]=0
; "Mes actual"
; "Mes actual " & IF([Meses de diferencia]>0; "+ "; "") & [Meses de diferencia])

Si ponemos las tres columnas en una tabla debería aparecer algo como en la siguiente imagen:

Esto nos indica que el cálculo es correcto y podemos poner un filtro en cualquier informe con el valor “Mes actual” seleccionado de manera que cuando tengamos nuevos datos, se actualice el informe, aparezca por defecto seleccionado siempre el último mes con datos.

Si en vez de un desplegable ponemos la lista de valores tendremos

Puede que expresiones del tipo “Mes actual -1” no sean muy inteligibles para muchos usuarios. Podemos hacer un pequeño cambio a la fórmula de la columna “Mes relativo” para simplificarla y en los informes poner los dos filtros: Mes relativo y fechas.

Mes relativo 2 = IF([Meses de diferencia]=0
; "Mes actual"
; "Mes anterior")

 

Deja un comentario

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