Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
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