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?
T
v-juanli-msft
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))
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.
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.
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?
v-juanli-msft
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))
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.
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.