Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

EOMONTH no funciona con LASTDATE o MAX

Hola a todos

Tengo dos preguntas (que en realidad pueden estar vinculadas). Descripción general rápida: el usuario puede elegir un método de línea base (rodante o fijo), el conjunto de datos se filtra con las fechas correspondientes. Todas las fechas están en formato de fin de mes.

1) ¿Por qué tengo que usar un FILTRO dentro de mi CALCULATE para mi valor SWITCH?

Mi código SWITCH está aquí:

Conmutador de línea base = 

DÓNDE Referencia = ÚLTIMA FECHA(DISTINTO(«Datos financieros»[Fecha]))
DÓNDE RollingStartDate = EOMONTH(FECHA(AÑO(Referencia) - 3, mes(Referencia), 01),1)

DEVOLUCIÓN

INTERRUPTOR(VERDADERO(),
SELECTEDVALUE('Fechas de referencia'[Línea de base]) = "3 años rodando", RollingStartDate,
SELECTEDVALUE('Fechas de referencia'[Línea de base]) = "Arreglado (Abr '19)", FECHA(2019,04,30),
FECHA(2019,04,30)
)

El usuario puede elegir el mes de referencia y yo extraigo esta opción usando SELECTEDVALUE. Sin embargo, luego tengo que usar un FILTRO dentro de un CALCULAR en mi otra medida:

WTE % Crecimiento total (Finanzas) = 

DÓNDE WTE_baseline = CALCULAR(SUMA(«Datos financieros»[WTE]), FILTRO('Fechas', [Fecha] = [Interruptor de línea base]))
DÓNDE WTE_current = CALCULAR(SUMA(«Datos financieros»[WTE]), «Datos financieros»[Fecha] = FECHA(2022, 03, 31))

DEVOLUCIÓN
WTE_current / WTE_baseline - 1

de lo contrario, aparece este error: "Se ha utilizado una función 'PLACEHOLDER' en una expresión True/False que se utiliza como expresión de filtro de tabla. Esto no está permitido". ¿Por qué?

2) ¿MI EOMONTH anterior no funciona?

Quiero filtrar mi conjunto de datos utilizando el método de línea base elegido (vinculado a un mes). El valor fijo está funcionando, pero el que está rodando no lo está. La línea de base móvil es 3 años anterior a la última fecha en los datos. Necesito extraer esa última fecha y luego encontrar la fecha de referencia correspondiente, sin embargo, simplemente no funciona. Sin embargo, si codifico la fecha en él funciona:

DÓNDE RollingStartDate = EOMONTH(FECHA(AÑO(FECHA(2022,03,31)) - 3, mes(FECHA(2022,03,31)), 01),1)

¡Cualquier ayuda es muy apreciada! Me estoy volviendo loco...

Gracias

En

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

¿Puedes intentar hacer esto?

DÓNDE Referencia = MÁXIMO(«Datos financieros»[Fecha])

Desafortunadamente eso tampoco funciona. Es súper raro, me da la fecha correcta pero no puedo filtrar la tabla usando esa fecha.

Primero resolvamos, sepamos si esto funciona correctamente o no.

DAX modificado:

Conmutador de línea base = 

DÓNDE Referencia = MÁXIMO(«Datos financieros»[Fecha])
DÓNDE RollingStartDate = EOMONTH(FECHA(AÑO(Referencia) - 3, mes(Referencia), 01),1)

DEVOLUCIÓN

INTERRUPTOR(VERDADERO(),
SELECTEDVALUE('Fechas de referencia'[Línea de base]) = "3 años rodando", RollingStartDate,
FECHA(2019,04,30)
)

¿Se resolvió esto? ¿Estás obteniendo la fecha correctamente?

En caso afirmativo, podemos trabajar en la siguiente lógica de medición.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors