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
rush
Helper V
Helper V

Rodar un promedio de 3 meses en una medida (retrocediendo 3 meses por cada punto de datos)

Hola a todos

Necesito ayuda para crear una medida que promedie la medida a continuación y se remonta a 3 meses atrás para cada punto de datos, ya que me gustaría utilizar ambas medidas en una línea de tendencia.

Billing Rate Avg. 2 = 

VAR Total_Rev = SUM(  Billing_Summary[Revenue] )

VAR Total_Bill_Hours = SUM(  Billing_Summary[Billable Hours] )

RETURN 

DIVIDE( Total_Rev , Total_Bill_Hours , 0 )

E.g.

En mayo de 2019, el trendline point (para mayo de 2019) sería el promedio de la tasa promedio para Mar, Abril y Mayo 2019

En junio de 2019, el trendline point (para junio de 2019) sería el promedio de la tasa media para abril, mayo y junio de 2019

En julio de 2019, el trendline point (para julio de 2019) sería el promedio de la tasa media para mayo, junio y julio de 2019

Muestra de datos

1 ACCEPTED SOLUTION
Mariusz
Community Champion
Community Champion

Hola @rush

Puede ajustar la siguiente medida a sus necesidades

Sales Rolling 12 months = 
CALCULATE(
    [Sales],
    DATESINPERIOD( 'Calendar'[Date], MIN( 'Calendar'[Date] ) -1, -12, MONTH )
)

Saludos
Mariusz

Si este post ayuda,entonces por favor considere aceptarlo como la solución.

Por favor, siéntase libre de conectarse conmigo.
Linkedin


View solution in original post

6 REPLIES 6
Anonymous
Not applicable

Necesito calcular un ingreso promedio de 3 con el inicio del ejercicio siendo el inicio del período de cálculo. El ejercicio es del 1 de julio al 30 de junio. Quiero ser capaz de obtener la sección "avaerge de 3 meses" para calcular en PowerBI, pero no sé cómo hacerlo usando el inicio del ejercicio como punto de partida.

Resultados realesPromedio de 3 meses
Jul-2020 de agostoSep-20Oct-20Jul-2020 de agostoSep-20Oct-20
Ingresos por tasas 1$ 10,000.00$ 34,000.00$ 45,908.00$ 59,876.00$ 10,000.00$ 34,000.00$ 29,969.33$ 46,594.67

Cualquier ayuda sería muy apreciada

¡Gracias!

amitchandak
Super User
Super User

@rush

Prueba esto con un calendario de fechas

Rolling 3 = CALCULATE(average(Sales[Sales Amount]),DATESINPERIOD('Date'[Date],ENDOFMONTH(Sales[Sales Date]),-3,MONTH)) 
Rolling 3 = CALCULATE(average(Sales[Sales Amount]),DATESINPERIOD('Date'[Date Filer],MAX(Sales[Sales Date]),-3,MONTH))  

Para obtener lo mejor de la función de inteligencia de tiempo. Asegúrese de que tiene un calendario de fechas y se ha marcado como la fecha en la vista de modelo. Además, únase a él con la columna de fecha de su hecho/s. Consulte:
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/

danno
Resolver V
Resolver V

Hola

hay algunas cosas que hacer con los datos antes de calcular un promedio móvil.

en primer lugar, el modelo necesita conocer la secuencia de meses, de modo que cuando se crea un promedio móvil, las fechas están en el orden correcto. Si aún no tiene una tabla de fechas a nivel de mes, cree una, si no, puede derivarla de los datos disponibles. Aquí hay una powerquery para tomar la tabla y crear una tabla de calendario a partir de ella: (Nota: el origen es una tabla creada al pegar los datos de ejemplo en powerbi, puede cambiar esto para un Excel u otro origen de datos)
Dejar
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("XdDBCsIwDAbgV5GeFCakWdusR1E8CFPQ49hhjuFFdIgTfHu3pAXXUw4f/980VaXK5rVG0H6xRFipTJ2dhXE4zFWdVWrTJ0zAXFjmsvlG1pJGZkvMh+ERWHvhgtlFvsd0HtJ2YoPy9nCbl5PmNAlfuj5ZLZfVCuZT+56XE+A4SBvm4/OTlINjln/vujbZ3HO597J5M30MYUyjpPlqpOUs++4aOV6NmN029MvZ/wv4MmScqusf", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Month & Year" = _t, #"Billing Rate Avg." = _t, #"3 month average (outcome)" = _t]),
"Tipo modificado" ? Tabla.TransformColumnTypes(Fuente, "Mes y Año", escriba texto, "Tasa de facturación Media.", escriba texto, "Promedio de 3 meses (resultado)", texto de tipo, texto de tipo, texto de tipo, texto de tipo, texto de tipo, texto, texto de tipo, texto, tipo de texto, texto, texto de tipo, texto de tipo, texto de tipo,
"Columnas eliminadas" - Tabla.RemoveColumns('Tipo modificado','Tasa de facturación avg.", "promedio de 3 meses (resultado)"-),
"Texto insertado antes del delimitador" - Tabla.AddColumn('Columnas eliminadas'", "Texto antes delimitador", cada Text.BeforeDelimiter(['"Mes & Year"], " "), texto de tipo),
"Texto insertado entre delimitadores" - Tabla.AddColumn('Texto insertado antes del delimitador", "Texto entre delimitadores", cada texto.entredelimitadores([-"Mes & Año"], "(", ")"), escriba texto),
"Columnas renombradas" - Table.RenameColumns(?"Texto insertado entre delimitadores", "Texto antes del delimitador", "Año del mes"-),
"Texto insertado antes de Delimiter1" - Table.AddColumn(?"Columnas renombradas", "Mes", cada Text.BeforeDelimiter([-"Mes & Año"], "-"), texto de tipo),
"Mes insertado" - Tabla.AddColumn(?"Texto insertado antes de Delimiter1", "Número de mes", cada Date.Month(Date.From([Año del mes])), Int64.Type),
"Año insertado" - Tabla.AddColumn ("Mes insertado", "Año", cada Fecha.Año(Fecha.De([Año del Mes])), Int64.Type), Int64.Type),
"Columna personalizada añadida" ? Table.AddColumn(?"Año insertado", "Año del año", cada Text.Combine ('Fecha.ToText(Date.From([Año del Mes]), "aaaa"), Date.ToText(Date.From([Año del mes]), "MM") , texto de tipo)
En
"Columna personalizada añadida"

- La mayor parte de esto se creó usando añadir columna de ejemplos.

2. Ahora tenemos una tabla de calendario podemos crear una función para hacer un promedio móvil. esta función solo devolverá filas donde hay 1 mes válido, por lo que tenemos que ajustar la función con una instrucción if para controlar su comportamiento. Usaremos IsFiltered para comprobar que tenemos un mes desde el que podemos calcular un promedio móvil.

Lo he hecho en pasos para mostrar cómo se construye el DAX, pero puede contraer algunas de estas instrucciones en una sola expresión.

Promedio de balanceo ?
VAR CurrentMonth - SELECTEDVALUE('Calendar'[YearMonth])
VAR MonthFilter á FILTER(All('Calendar'), 'Calendar'[YearMonth] <'CurrentMonth)
VAR RankedMonths - ADDCOLUMNS(MonthFilter, "Rank", RANKX(MonthFilter, [YearMonth]))
VAR Top3Months - FILTER(RankedMonths, [Rank] <-3)
RETURN IF(ISFILTERED('Calendar'),
CALCULATE(AVERAGE('Table'[Tasa de facturación media.]), Top3Months)
)

@danno gracias, pero he modificado la medida para obtener los resultados necesarios sin tener que añadir demasiados pasos.


Mariusz
Community Champion
Community Champion

Hola @rush

Puede ajustar la siguiente medida a sus necesidades

Sales Rolling 12 months = 
CALCULATE(
    [Sales],
    DATESINPERIOD( 'Calendar'[Date], MIN( 'Calendar'[Date] ) -1, -12, MONTH )
)

Saludos
Mariusz

Si este post ayuda,entonces por favor considere aceptarlo como la solución.

Por favor, siéntase libre de conectarse conmigo.
Linkedin


@Mariusz Muchas gracias.

He modificado la medida para atender el resultado deseado.

Medida:

CALCULATE(
    [Billing Rate Avg. 2],
    DATESINPERIOD( 'Dim_Date'[Calendar_Date], MIN(  'Dim_Date'[Calendar_Date] )  , -3 , MONTH )
)

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.