Calendario para Rolling 12 meses – Una nueva columna

Un usuario Pregunto ✅

Anónimo

Oye,

Me gustaría que una columna de bandera que estoy creando se vea así:

Bandera Año Mes Día

0 2017 15 de enero

0 2017 16 de enero

.

.

.

1 2017 julio 1

1 2017 julio 2

.

.

.

1 2018 julio 31

La bandera aquí es 1 de julio porque estamos en el próximo mes de agosto. A principios de agosto, Flag debe establecerse en 1 para todas las fechas que se encuentren entre julio de 2017 y julio de 2018.

Del mismo modo, una vez que vayamos a septiembre de 2018, la bandera debería ser 1 desde el 1 de agosto de 2017 hasta el 31 de agosto de 2018.

El equivalente de QlikView sería: inMonths(12, DATE, Today(), -1, num(month(Today()))). Necesito su equivalente en Power BI.

¡Gracias!

Anónimo

@Anónimo aquí tienes.

Rolling12FlagM = 
VAR MaxDateV = CALCULATE(MAX(Query1[CalendarDate]),FILTER(ALL(Query1),Query1[CalendarDate]=MAX(Query1[CalendarDate])))
VAR CalDateMaxDateDiff = DATEDIFF(MaxDateV,Query1[CalendarDate],MONTH)
Return SWITCH(TRUE(),
              CalDateMaxDateDiff>=-13 && CalDateMaxDateDiff <= -1,"Yes",
              "No"
)   

Anónimo

En respuesta a Anónimo

Rolling12Month Código.PNGRolling12Month salida.PNG Oye, esto da un no para todo. Pero quiero un sí para todas las fechas entre julio de 2017 y julio de 2018.

Anónimo

En respuesta a Anónimo

@Anónimo Probé la fórmula y funcionó correctamente para mí. ¿Puedes publicar tu archivo PBIX? También puede verificar cuál es el valor de fecha máxima.

MaxDate = 
VAR MaxDateV = CALCULATE(MAX(Query1[CalendarDate]),FILTER(ALL(Query1),Query1[CalendarDate]=MAX(Query1[CalendarDate])))
Return MaxDateV

Rolling12Month.PNG

Anónimo

@Anónimo aquí tienes.

Rolling12FlagM = 
VAR MaxDateV = CALCULATE(MAX(Query1[CalendarDate]),FILTER(ALL(Query1),Query1[CalendarDate]=MAX(Query1[CalendarDate])))
VAR CalDateMaxDateDiff = DATEDIFF(MaxDateV,Query1[CalendarDate],MONTH)
Return SWITCH(TRUE(),
              CalDateMaxDateDiff>=-13 && CalDateMaxDateDiff <= -1,"Yes",
              "No"
)   

Anónimo

En respuesta a Anónimo

Rolling12Month Código.PNGRolling12Month salida.PNG Oye, esto da un no para todo. Pero quiero un sí para todas las fechas entre julio de 2017 y julio de 2018.

Anónimo

En respuesta a Anónimo

@Anónimo Probé la fórmula y funcionó correctamente para mí. ¿Puedes publicar tu archivo PBIX? También puede verificar cuál es el valor de fecha máxima.

MaxDate = 
VAR MaxDateV = CALCULATE(MAX(Query1[CalendarDate]),FILTER(ALL(Query1),Query1[CalendarDate]=MAX(Query1[CalendarDate])))
Return MaxDateV

Rolling12Month.PNG

Anónimo

En respuesta a Anónimo

Oye, esto funcionó. Pero acabo de cambiar 13 a 12 y 1 a 0. Entonces funcionó para mí.

¡Gracias!

Deja un comentario

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