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

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.

¡Eso es perfecto! ¡gracias!

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.