SamePeriod Last Year está calculando -365 no -364

Un usuario Pregunto ✅

Tvisual

Hola,

Actualicé mi Power BI Desktop a una nueva versión (Versión: 2.68.5432.841 de 64 bits (abril de 2019)). Por alguna razón, mi mismo período del año pasado no está funcionando correctamente. He descargado 64 bits.

Básicamente, creé una tabla de fechas en Excel y la importé al escritorio de powerbI, apliqué «Marcado como tabla de fechas». Creé una función (mismo período del año pasado) y para el 28/04/2019 me está dando 28/04/2018 no 27/04/2018.

¿Sabes lo que me estoy perdiendo?

TFecha.PNGPLY.PNG

En respuesta a Tvisual

Hola @Tvisual

Según su requerimiento, cree una medida

LY you expected = CALCULATE(MAX('calendar'[Date]),DATEADD('calendar'[Date],-366,DAY))

6.png6.png

Como se probó, para el 29/2 en un año bisiesto, use «SAMEPERIODLASTYEAR’ obtendrá una fecha duplicada en esta fecha, pero el uso de «dateadd» puede tener fechas diferentes.

Hay medidas como las siguientes, seleccione la que más satisfaga sus necesidades.

LY = CALCULATE(MAX('calendar'[Date]),SAMEPERIODLASTYEAR('calendar'[Date]))
LY you expected = CALCULATE(MAX('calendar'[Date]),DATEADD('calendar'[Date],-366,DAY))
LY2 = CALCULATE(MAX('calendar'[Date]),DATEADD('calendar'[Date],-365,DAY))

En mi sitio, 2016 es un año bisiesto.

7.png

Atentamente
Maggie

Equipo de apoyo comunitario _ Maggie Li
Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.

edhans

Eso es calcular correctamente. No está haciendo la fecha menos 365. Está haciendo lo mismo período el año pasado. Si su contexto está en el nivel de mes o trimestre, informará el mismo mes o trimestre para el año. Entonces, para abril de 2019, SAMEPERIODLASTYEAR() devolverá todas las fechas de abril de 2018, no de marzo.

La única rareza es con los años bisiestos en la granularidad a nivel de día.

imagen.png

Informará el 28 de febrero como el SPLY del 29 de febrero.

Consulte la definición para obtener más información. Si desea que sea de 364 días atrás, considere la función DATEADD().

Tenga cuidado con la forma en que usa SAMEPERIODLASTYEAR. No devuelve una fecha. Devuelve una tabla de fechas. En el nivel de día, pasa a ser una fecha. A nivel de mes, serán 28-31 registros. Eso puede hacer que una medida devuelva un error si no la está manejando como una tabla para empezar.

Tvisual

En respuesta a edhans

¿Hay alguna manera de obtener un valor de -364 en comparación con -365 y ajustarlo con el año bisiesto?

En respuesta a Tvisual

Hola @Tvisual

Según su requerimiento, cree una medida

LY you expected = CALCULATE(MAX('calendar'[Date]),DATEADD('calendar'[Date],-366,DAY))

6.png6.png

Como se probó, para el 29/2 en un año bisiesto, use «SAMEPERIODLASTYEAR’ obtendrá una fecha duplicada en esta fecha, pero el uso de «dateadd» puede tener fechas diferentes.

Hay medidas como las siguientes, seleccione la que más satisfaga sus necesidades.

LY = CALCULATE(MAX('calendar'[Date]),SAMEPERIODLASTYEAR('calendar'[Date]))
LY you expected = CALCULATE(MAX('calendar'[Date]),DATEADD('calendar'[Date],-366,DAY))
LY2 = CALCULATE(MAX('calendar'[Date]),DATEADD('calendar'[Date],-365,DAY))

En mi sitio, 2016 es un año bisiesto.

7.png

Atentamente
Maggie

Equipo de apoyo comunitario _ Maggie Li
Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.

edhans

En respuesta a Tvisual

Si. Necesitaría usar la función DATEADD() y usar 364 a menos que el 29/2 sea una fecha válida para el año actual, luego use 365.

Deja un comentario

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