cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Proyección de avance personalizada

Hola a todos

Tengo una mesa como se muestra a continuación. Fy y Qtr se derivan de una tabla [Fechas]. Se proyectan los valores en rojo. Cada valor proyectado se basa en el anterior (trimestre anterior). Los negros son valores observados por lo que 3377 es 3396 + X (X es un cálculo basado en una suma de parámetros), 3368 es 3377 + X, y así sucesivamente.

Mi tabla [Fechas] tiene fechas hasta 2025, así que me gustaría ejecutar esa proyección para todas esas fechas.

FyQtrvalor
Ejercicio 20Q11186
Ejercicio 20Q23087
Ejercicio 20Q33310
Ejercicio 20Q43780
Ejercicio 21Q13717
Ejercicio 21Q23396
Ejercicio 21Q33377
Ejercicio 21Q43368

¿Podría alguien ayudarme con eso o apuntarme a un artículo?

¡Muchas gracias!

1 ACCEPTED SOLUTION

No @fgenteur,

Creé una medida de muestra para calcular el valor de las variables basadas en el tiempo: X, Y, Z...

test parameters = QUARTER(MAX(Dates[Date]))*100

A continuación, cree medidas:

Sum_Parameters = 
IF(
    COUNTROWS(Dates) = COUNTROWS( ALLSELECTED(Dates) ),
    SUMX(
        SUMMARIZE(
            'Dates',
            Dates[FY],
            Dates[Qtr],
            "_sum",
            [test parameters]
        ),
        [_sum]
    ),
    [test parameters]
)
Measure = 
var Last_Date = MAXX(ALL('Table'),'Table'[Date])
var QuarterEnd = 
    CALCULATE(
        VALUES('Table'[Date]),
        ENDOFQUARTER('Table'[Date])
    )
var FactValue = SUM('Table'[Value])
var ProjectedValue = 
    CALCULATE(
        SUM('Table'[Value]),
        FILTER(
            ALL(Dates),
            Dates[Date].[Year] = YEAR(Last_Date)
            && Dates[Date].[QuarterNo] = QUARTER(Last_Date)
        )
    ) +
    CALCULATE(
        [Sum_Parameters],
        FILTER(
            ALL(Dates),
            Dates[Date] > Last_Date
            && Dates[Date] <= MAX(Dates[Date])
        )
    )
return 
    IF(
        MAX(Dates[Date]) > QuarterEnd,
        ProjectedValue,
        FactValue
    )

image.png

Si el problema aún no se ha resuelto, proporcione información detallada sobre errores o el resultado esperado que espera. Hágamelo saber inmediatamente, esperando su respuesta.

Saludos
Winniz

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

@fgenteur , Lo que usted hace es tomar el valor QTR máximo y luego tomar diff en Qtr y múltiples parámetros con que

3396 +X

3396+ 2X

Tener una columna

QTR en formato YYYYQ

y columna de rango qtr

Rango Qtr = RANKX(all('Date'),'Date'[QTR Rank],,ASC,Dense)

Medida =

Var _max = Maxx(allselected(Table), Table[Qtr Rank]) // Have Year qtr en formato YYYYQQ

var _maxVal = maxx(filter(allselected(Table), Table[Qtr Rank] = _max), Table[Value])

devolución

_maxVal +(2* max(Table[Qtr Rank]) -_max)

@amitchandak Muchas gracias por esa respuesta rápida! Estoy un poco confundido sin embargo...

No entiendo la parte "3396 + 2X" y la fórmula DAX. ¿Podrías dar más detalles?

Tal vez debería proporcionar claridad:

El primer valor proyectado es = valor anterior + X

El segundo valor proyectado es = primer valor proyectado + Y

El tercer valor proyectado es = segundo valor proyectado + Z...

X, Y y Z son cálculos que también están relacionados con la fecha.

Tengo una tabla de fecha lista que proporciona el valor del trimestre a partir de una fecha adecuada

Así que supongo que podría trabajar con inteligencia del tiempo en lugar de que RANK, ¿verdad?

No @fgenteur,

Creé una medida de muestra para calcular el valor de las variables basadas en el tiempo: X, Y, Z...

test parameters = QUARTER(MAX(Dates[Date]))*100

A continuación, cree medidas:

Sum_Parameters = 
IF(
    COUNTROWS(Dates) = COUNTROWS( ALLSELECTED(Dates) ),
    SUMX(
        SUMMARIZE(
            'Dates',
            Dates[FY],
            Dates[Qtr],
            "_sum",
            [test parameters]
        ),
        [_sum]
    ),
    [test parameters]
)
Measure = 
var Last_Date = MAXX(ALL('Table'),'Table'[Date])
var QuarterEnd = 
    CALCULATE(
        VALUES('Table'[Date]),
        ENDOFQUARTER('Table'[Date])
    )
var FactValue = SUM('Table'[Value])
var ProjectedValue = 
    CALCULATE(
        SUM('Table'[Value]),
        FILTER(
            ALL(Dates),
            Dates[Date].[Year] = YEAR(Last_Date)
            && Dates[Date].[QuarterNo] = QUARTER(Last_Date)
        )
    ) +
    CALCULATE(
        [Sum_Parameters],
        FILTER(
            ALL(Dates),
            Dates[Date] > Last_Date
            && Dates[Date] <= MAX(Dates[Date])
        )
    )
return 
    IF(
        MAX(Dates[Date]) > QuarterEnd,
        ProjectedValue,
        FactValue
    )

image.png

Si el problema aún no se ha resuelto, proporcione información detallada sobre errores o el resultado esperado que espera. Hágamelo saber inmediatamente, esperando su respuesta.

Saludos
Winniz

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

View solution in original post

¡Eso es perfecto! ¡gracias!

Helpful resources

Announcements
PBI User Groups

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group!

MBAS on Demand

Microsoft Business Applications Summit sessions

On-demand access to all the great content presented by the product teams and community members! #MSBizAppsSummit #CommunityRocks

MBAS Attendee Badge

Claim Your Badge & Digital Swag!

Check out how to claim yours today!

secondImage

Are You Ready?

Test your skills now with the Cloud Skills Challenge.

Top Solution Authors