Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Por favor, tengo una imagen de tabla que se muestra a continuación:
El EAC y ACP_6 son medidas, mientras que Period_MonthYear proviene de una tabla de fechas y está relacionada con el EAC y ACP_6 tabla de ReportingDate.
Period_MonthYear | EAC | ACP_6 |
P1 Abr-23 | 101,101 | 252,042 |
P2 Mayo-23 | 414,455 | 252,042 |
P3 Jun-23 | 514,455 | 252,042 |
P4 Jul-23 | 665,455 | 252,042 |
P5 Ago-23 | 754,455 | 252,042 |
P6 Sep-23 | 252,042 | |
P7 Oct-23 | 252,042 | |
P8 Nov-23 | 252,042 | |
P9 Dic-23 | 252,042 | |
P10 ene-24 | 252,042 | |
P11 Feb-24 | 252,042 | |
P12 Mar-24 | 252,042 | |
P1 Abr-24 | 252,042 |
Lo que quiero lograr es crear una medida de pronóstico y la lógica detrás de la medida de pronóstico es agregar ACP_6 al último EAC y agregar ACP_6 al pronóstico. Esto se muestra a continuación
Period_MonthYear | EAC | ACP_6 | Previsión |
P1 Abr-23 | 101,101 | 252,042 | |
P2 Mayo-23 | 414,455 | 252,042 | |
P3 Jun-23 | 514,455 | 252,042 | |
P4 Jul-23 | 665,455 | 252,042 | |
P5 Ago-23 | 754,455 | 252,042 | |
P6 Sep-23 | 252,042 | 1,006,497 | |
P7 Oct-23 | 252,042 | 1,258,539 | |
P8 Nov-23 | 252,042 | 1,510,581 | |
P9 Dic-23 | 252,042 | 1,762,623 | |
P10 ene-24 | 252,042 | 2,014,665 | |
P11 Feb-24 | 252,042 | 2,266,707 | |
P12 Mar-24 | 252,042 | 2,518,749 | |
P1 Abr-24 | 252,042 | 2,770,791 |
Por ejemplo, P5 Ago-23 es el último registro de datos y EAC es 754455 y el ACP_6 es constante y es 252042, cuando agrega estas dos medidas, debe devolver 1006497 para el siguiente período P6 Sep-23 y luego seguir agregando 252042 a 1006497 para obtener 1258539 para P7 Oct-23 y así sucesivamente.
¿Cómo puedo lograr esto?
Solved! Go to Solution.
He encontrado la respuesta, para lograr la medida de pronóstico como se describe, necesitaré crear una medida DAX que acumule el valor de ACP_6 a partir del último valor EAC conocido. Así es como puedo hacerlo paso a paso:
Identificar el último valor EAC que no está en blanco: Esto me ayudará a saber por dónde empezar el cálculo de la previsión.
Calcular la medida de previsión: esta medida se sumará ACP_6 de forma iterativa al último valor EAC conocido para los meses siguientes.
Así es como puedo implementarlo en DAX:
Cree una medida para identificar el último valor de EAC que no esté en blanco y la fecha correspondiente.
LastEAC =
CALCULATE(
LASTNONBLANK(EAC, EAC),
REMOVEFILTERS(Period_MonthYear)
)
Ahora, cree la medida de previsión que acumula ACP_6 a partir del último valor EAC conocido.
Forecast =
VAR LastEACDate =
CALCULATE(
MAX('Date'[Period_MonthYear]),
FILTER(
ALL('Date'),
NOT(ISBLANK([EAC]))
)
)
VAR LastEACValue =
CALCULATE(
LASTNONBLANK(EAC, EAC),
FILTER(
ALL('Date'),
'Date'[Period_MonthYear] = LastEACDate
)
)
VAR CurrentPeriod = MAX('Date'[Period_MonthYear])
VAR PeriodOffset = DATEDIFF(LastEACDate, CurrentPeriod, MONTH)
RETURN
IF(
PeriodOffset >= 0,
LastEACValue + PeriodOffset * [ACP_6],
BLANK()
)
Este es el procedimiento que seguí para darme el resultado correcto
He encontrado la respuesta, para lograr la medida de pronóstico como se describe, necesitaré crear una medida DAX que acumule el valor de ACP_6 a partir del último valor EAC conocido. Así es como puedo hacerlo paso a paso:
Identificar el último valor EAC que no está en blanco: Esto me ayudará a saber por dónde empezar el cálculo de la previsión.
Calcular la medida de previsión: esta medida se sumará ACP_6 de forma iterativa al último valor EAC conocido para los meses siguientes.
Así es como puedo implementarlo en DAX:
Cree una medida para identificar el último valor de EAC que no esté en blanco y la fecha correspondiente.
LastEAC =
CALCULATE(
LASTNONBLANK(EAC, EAC),
REMOVEFILTERS(Period_MonthYear)
)
Ahora, cree la medida de previsión que acumula ACP_6 a partir del último valor EAC conocido.
Forecast =
VAR LastEACDate =
CALCULATE(
MAX('Date'[Period_MonthYear]),
FILTER(
ALL('Date'),
NOT(ISBLANK([EAC]))
)
)
VAR LastEACValue =
CALCULATE(
LASTNONBLANK(EAC, EAC),
FILTER(
ALL('Date'),
'Date'[Period_MonthYear] = LastEACDate
)
)
VAR CurrentPeriod = MAX('Date'[Period_MonthYear])
VAR PeriodOffset = DATEDIFF(LastEACDate, CurrentPeriod, MONTH)
RETURN
IF(
PeriodOffset >= 0,
LastEACValue + PeriodOffset * [ACP_6],
BLANK()
)
Este es el procedimiento que seguí para darme el resultado correcto
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.