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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

(corriendo/YTD) Total de meses finalizados

hola
Tengo una tabla de fechas y una tabla de datos con el gasto diario.

Es fácil obtener un total para todos los gastos, pero necesito tener un total de meses 'finalizados'. Se finaliza un mes después del día 15 del mes siguiente. Así que hoy (7 de julio) solo se han finalizado los meses hasta mayo inclusive. Cuando es el 16, el mes de junio también está finalizado.
Creé una medida para encontrar el último mes finalizado, así:

Last Full Month =
SWITCH (
    TRUE (),
    DAY ( UTCTODAY () ) > 15, [Current Month] - 1,
    [Current Month] - 2
)

La tabla 'Gastos' tiene las columnas Fecha, Número de cuenta y Gasto.


Pero, ¿cómo puedo obtener un total de al Spend solo para los meses finalizados del año?
¿También puedo obtener un total de los últimos 12 meses finalizados?

¡gracias!

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

He encontrado mi solución para conseguir el gasto total de meses finalizados, con estas medidas. Algunos de ellos se pueden condensar en 1 medida, y esta probablemente no es la mejor manera de hacerlo.

Creo que el mayor desafío fue encontrar EOMONTH en lugar de la función ENDOFMONTH.

Last Full Month = 
    SWITCH(TRUE(),
    DAY(UTCTODAY())>15, [Current Month] - 1,
    [Current Month] - 2 )

Last day of Finalized Month = 
var last_finalized_month = SWITCH(TRUE(),
    DAY(UTCTODAY())>15, [Current Month] - 1,
    [Current Month] - 2 )
 return EOMONTH(DATE(YEAR(UTCTODAY()),last_finalized_month,1),0)

Start of Year of Finalized month = DATE(YEAR([Last day of Finalized Month]),1,1)

fYTD AWS Spend = CALCULATE(SUM(CLDY[Cost EUR]),DATESBETWEEN(Dates[Date],[Start of Year of Finalized month],[Last day of Finalized Month]),CLDY[Vendor] = "Amazon")

así que la f en fYTD no se refiere a fiscal, sino a finalizado. ¿Pero podría ser similar?

De todos modos, gracias por la ayuda / punteros!

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

He encontrado mi solución para conseguir el gasto total de meses finalizados, con estas medidas. Algunos de ellos se pueden condensar en 1 medida, y esta probablemente no es la mejor manera de hacerlo.

Creo que el mayor desafío fue encontrar EOMONTH en lugar de la función ENDOFMONTH.

Last Full Month = 
    SWITCH(TRUE(),
    DAY(UTCTODAY())>15, [Current Month] - 1,
    [Current Month] - 2 )

Last day of Finalized Month = 
var last_finalized_month = SWITCH(TRUE(),
    DAY(UTCTODAY())>15, [Current Month] - 1,
    [Current Month] - 2 )
 return EOMONTH(DATE(YEAR(UTCTODAY()),last_finalized_month,1),0)

Start of Year of Finalized month = DATE(YEAR([Last day of Finalized Month]),1,1)

fYTD AWS Spend = CALCULATE(SUM(CLDY[Cost EUR]),DATESBETWEEN(Dates[Date],[Start of Year of Finalized month],[Last day of Finalized Month]),CLDY[Vendor] = "Amazon")

así que la f en fYTD no se refiere a fiscal, sino a finalizado. ¿Pero podría ser similar?

De todos modos, gracias por la ayuda / punteros!

Syndicate_Admin
Administrator
Administrator

HOLA @SuHwak,

Parece que está tratando de construir un mes fiscal basado en la fecha actual.

Para este scneario, creo que también debe considerar el cálculo de conversión de año porque estos meses fiscales se definen en función de dos fechas de mes.

¿Puede compartir algunos datos ficticios con una estructura de datos similar y los resultados esperados? Debería ayudarnos a aclarar su escenario y probar la fórmula de codificación.

Cómo obtener una respuesta rápida a su pregunta

saludos

Xiaoxin Sheng

Syndicate_Admin
Administrator
Administrator

De womehere else incorperated esta solución (ver ejemplo de código), pero la función TOTALYTD todavía me está dando problemas.

Last day of Finalized Month = 
var last_finalized_month = SWITCH(TRUE(),
    DAY(UTCTODAY())>15, [Current Month]-1,
    [Current Month] - 2 )
 return EOMONTH(DATE(YEAR(UTCTODAY()),last_finalized_month,1),0)

No estoy seguro de lo útil que es esto, pero aquí está mi tabla:

SuHwak_0-1625676506291.png

Syndicate_Admin
Administrator
Administrator

Gracias, eso ayudará, pero supongo que tengo un malentendido fundamental de por qué no me permitirá (o cómo) hacer algo como esto:

Fecha completa último día del mes finalizado = ENDOFMONTH(DATE(YEAR(UTCTODAY()),[Último mes completo],1))
[Último mes completo] no devuelve la clave de fecha completa, solo el número de mes, mientras que la función ENDOFMONTH espera una columna con fechas.
Syndicate_Admin
Administrator
Administrator

hola

Si su medida para calcular el "último mes completo" funciona correctamente y devuelve la clave de fecha más reciente de un mes finalizado, intente algo como la siguiente medida para calcular el gasto total para el mes finalizado del año:

TotalSpendYear =

var FullMonth = [Latest Full Month]

Return

TOTALYTD([TotalSpend],Calendar[DateKey],,FullMonth)


Para calcular el total corriente de los 12 meses pasados terminados intente:

Latest12Months =

var FullMonth = [Latest Full Month]

Return

Calculate([TotalSpend],DATESINPERIOD(Calendar[DateKey],FullMonth),-12,MONTH)

Si ninguna de las medidas funciona correctamente, envíe una muestra de su conjunto de datos

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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