Error de selección de fecha contigua – YTD LY

Un usuario Pregunto ✅

Janx

Hola a todos,

Tengo un problema con la función YTD. En pocas palabras, tengo una tabla con Marca, Categoría, Franquicia, Valor, KPI, etc.

He creado una función YTD

YTD = TOTALYTD(SUM('Per Day'[Value]),'Per Day'[MonthYear])

y una función YTD LY

YTD LY = CALCULATE([YTD],SAMEPERIODLASTYEAR('Per Day'[MonthYear]))

Cuando ahora creo un informe, funciona perfectamente bien para Marca y Categoría. Sin embargo, cuando trato de hacerlo para la franquicia y agrego YTD LY (YTD funciona bien), aparece el error:

MdxScript(Modelo) (1, 50) Error de cálculo en la medida ‘Por día'[YTD LY]: La función ‘SAMEPERIODLASTYEAR’ solo funciona con selecciones de fechas contiguas.

Traté de solucionarlo con la ayuda de otros subprocesos, pero no parecía funcionar (por ejemplo, reemplazar ‘SAMEPERIODLASTYEAR’ con ‘DATEADD’ da el mismo error). ¿Qué estoy haciendo mal?

¡De antemano muchas gracias por tu ayuda!

cantor

En respuesta a Janx

@Janx

En este caso, deberá especificar cuáles considera que son los períodos de calendario para un año. DAX está predeterminado de enero a diciembre. Consulte este blog para conocer las fechas personalizadas de YTD.

http://www.kasperonbi.com/get-the-ytd-of-same-period-last-year-using-dax/

cantor

@Janx

La mayoría de las veces, los problemas con la inteligencia de tiempo provienen de la falta de una tabla de dimensiones de fecha. Se requiere una tabla de fechas separada con todas las fechas en el rango para que funcione. Si está extrayendo la fecha de la tabla de hechos, es posible que no tenga información para fines de semana, días festivos, etc. Consulte este enlace para obtener más información.

http://www.powerpivotpro.com/2011/11/the-ultimate-date-table/

Según su cálculo, parece que está sacando la fecha de su tabla de hechos. Agrega una tabla de fechas y dale otra oportunidad.

Janx

En respuesta a cantor

@kcantor

¡Muchas gracias! Si eso es correcto. Estoy sacando la fecha de mi tabla de hechos. Lo que hice ahora fue descargar esta tabla DateStream y la importé a Power BI. Luego vinculé la columna de fecha en mi tabla de hechos con la columna de fecha en la tabla de fechas (exactamente el mismo formato). ¿Necesito hacer algo más? Porque al parecer, sigue sin funcionar.

cantor

En respuesta a Janx

@Janx

Deberá cambiar su DAX para reflejar la nueva relación. Tienes:

YTD LY = CALCULATE([YTD],SAMEPERIODLASTYEAR('Per Day'[MonthYear]))

Ahora debería ser algo como:

YTD LY = CALCULATE([YTD],SAMEPERIODLASTYEAR('Date'[DateKey]))

Yo también soy fan de:

YTD LY = CALCULATE([YTD],DATEADD('Date'[DateKey], -1, year))

Un solo ejemplo. Tendrá que cambiar los nombres de las columnas y las tablas reflectantes. Asegúrese de usar la clave de fecha para la relación y el DAX.

Janx

En respuesta a cantor

@kcantor

Eso es lo que hice, pero desafortunadamente todavía dice que los datos no son contiguos. YTD está funcionando, pero YTD LY no.

En respuesta a Janx

Hola @Janx,

Según mi prueba, si la columna de fecha de la tabla de hechos está vinculada a la columna de fecha de la tabla de calendario y la columna de fecha dentro de la tabla de calendario continúa, las expresiones YTD y YTD LY pueden funcionar. Consulte el archivo .PBIX adjunto. Compárelo con su informe para encontrar dónde está el problema.

Si tiene alguna pregunta, no dude en preguntar.

Atentamente,
qiuyun yu

Janx

En respuesta a v-qiuyu-msft

@v-qiuyu-msft

Muchas gracias por tu respuesta.

También llegué al punto de que ya no recibo el error, SIN EMBARGO, y este también es el caso en sus datos, la fórmula YTD LY no funciona correctamente. Por ejemplo, en su conjunto de datos, sus datos de 2016 van hasta junio de 2016. Sin embargo, su fórmula YTD LY le brinda los Ingresos para todo 2015 en lugar de solo de enero a junio de 2015, que es la idea general de la comparación de YTD.

Tengo el mismo problema en mis datos. He subido mi archivo .PBIX aquí. También he incluido el cálculo sin usar la tabla de fechas («ERROR YTD») como referencia. Como puede ver, YTD y YTD LY no generan un error; sin embargo, no está calculando correctamente el YTD del año pasado. Creo que hay algún error en la vinculación de fechas… ¿Alguna idea?

¡Gracias!

cantor

En respuesta a Janx

@Janx

En este caso, deberá especificar cuáles considera que son los períodos de calendario para un año. DAX está predeterminado de enero a diciembre. Consulte este blog para conocer las fechas personalizadas de YTD.

http://www.kasperonbi.com/get-the-ytd-of-same-period-last-year-using-dax/

Janx

En respuesta a cantor

@kcantor

Eso tiene sentido, muchas gracias!

KGrice

¿Ya comprobó esta solución en PowerPivotPro? Este error puede ocurrir debido a la naturaleza de las filas de totales. No estoy seguro de por qué no lo vio antes en sus medidas anteriores, pero es una solución más para probar.

Deja un comentario

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