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.
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.
Fy | Qtr | valor |
Ejercicio 20 | Q1 | 1186 |
Ejercicio 20 | Q2 | 3087 |
Ejercicio 20 | Q3 | 3310 |
Ejercicio 20 | Q4 | 3780 |
Ejercicio 21 | Q1 | 3717 |
Ejercicio 21 | Q2 | 3396 |
Ejercicio 21 | Q3 | 3377 |
Ejercicio 21 | Q4 | 3368 |
¿Podría alguien ayudarme con eso o apuntarme a un artículo?
¡Muchas gracias!
Solved! Go to 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
)
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.
@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
)
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!
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
1 | |
1 |