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
jlarques
Resolver II
Resolver II

Calcular el Sales Forecast

Buenas comunidad,

 

quisiera hacer una previsión de ventas, según los días pasados. Por ejemplo, si hoy es martes 18 de julio de 2023, para saber la previsión de ventas, sumaré el martes 11 de julio y el martes 4 de julio y lo dividiré entre dos para tener la media. Esa cifra será la previsión de ventas para hoy. Cuando sea martes 25 de julio, sumare el martes 4, el martes 11 y el martes 18 y lo dividiré por tres. Así con cada día de la semana.

 

Le he estado dando vueltas, pero no encuentro la manera para poder hacerlo en DAX.

 

¿Alguna idea que se os ocurra?

 

Gracias por vuestra ayuda.

 

Saludos,

 

1 ACCEPTED SOLUTION

Hola Neeko Tang,

 

gracias por tu propuesta. A lfinal, lo solucioné consultando con expertos, que me facilitaron esta fórmula:

Sales Forecast=

VAR __Mes=FORMAT(TODAY(), "YYYYMM", "ES-es")

VAR __Dia=MAX(dimCalendario[ORDENDIA])

VAR __MaxDate=MAX(dimCalendario[FECHA])

VAR __Total=CALCULATETABLE(

                              dimCalendario,

                              dimCalendario[AÑO-MES]=VALUE(__Mes),

                              dimCalendario[ORDENDIA]=VALUE(__Dia),

                              dimCalendario[FECHA]<=___MaxDate,

                              REMOVEFILTERS(dimCalendario)

                    )

RETURN

 

CALCULATE(

        AVERAGEX(

                VALUES(dimCalendario[FECHA]),

                 [Ventas]

         ),

         __Total

)

 

Creo una tabla con los registros del calendario, donde el año-mes sea igua al año-mes actual, el número de día de la semana igual al número de día de la semana más grande, la fecha menor o igual a la fecha más grande del calendario y borro todos los filtros que se apliquen a la tabla calendario.

 

Después, calculo la media de las ventas según la tabla que acabo de generar.

 

Comparto este código para que pueda ser útil a la comunidad.

 

¡Muchas gracias por la aportación!

 

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@Syndicate_Admin ,

De acuerdo con su descripción, aquí están mis pasos que puede seguir como solución.

(1) Estos son mis datos de prueba.

vtangjiemsft_0-1689820291876.png

(2) Podemos crear una medida.

Sales Forecast = 
VAR CurrentDate = MAX('Table'[Date])
VAR CurrentWeekday = WEEKDAY(CurrentDate, 2)
VAR PastDates = 
    FILTER(
        ALL('Table'[Date]),
        WEEKDAY('Table'[Date], 2) = CurrentWeekday && 'Table'[Date] < CurrentDate
    )
VAR PastSales = 
    CALCULATE(
        SUM('Table'[Sales]),
        'Table'[Date] IN PastDates
    )
VAR PastDaysCount = COUNTROWS(PastDates)
RETURN IF(PastDaysCount = 0, BLANK(), PastSales / PastDaysCount)

(3) Entonces el resultado es el siguiente.

vtangjiemsft_1-1689820355088.png

Si el anterior no puede ayudarlo a obtener el resultado deseado, proporcione algunos datos de muestra en sus tablas (excluya los datos confidenciales) con formato de texto y su resultado esperado con lógica de backend y ejemplos especiales. Es mejor si puede compartir un archivo pbix simplificado . Gracias.

Saludos

Neeko Tang

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola Neeko Tang,

 

gracias por tu propuesta. A lfinal, lo solucioné consultando con expertos, que me facilitaron esta fórmula:

Sales Forecast=

VAR __Mes=FORMAT(TODAY(), "YYYYMM", "ES-es")

VAR __Dia=MAX(dimCalendario[ORDENDIA])

VAR __MaxDate=MAX(dimCalendario[FECHA])

VAR __Total=CALCULATETABLE(

                              dimCalendario,

                              dimCalendario[AÑO-MES]=VALUE(__Mes),

                              dimCalendario[ORDENDIA]=VALUE(__Dia),

                              dimCalendario[FECHA]<=___MaxDate,

                              REMOVEFILTERS(dimCalendario)

                    )

RETURN

 

CALCULATE(

        AVERAGEX(

                VALUES(dimCalendario[FECHA]),

                 [Ventas]

         ),

         __Total

)

 

Creo una tabla con los registros del calendario, donde el año-mes sea igua al año-mes actual, el número de día de la semana igual al número de día de la semana más grande, la fecha menor o igual a la fecha más grande del calendario y borro todos los filtros que se apliquen a la tabla calendario.

 

Después, calculo la media de las ventas según la tabla que acabo de generar.

 

Comparto este código para que pueda ser útil a la comunidad.

 

¡Muchas gracias por la aportación!

 

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.