Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
Buenas tardes, la empresa donde trabajo necesito realizar un informe con la variación porcentual de las materias primas a lo largo de los últimos tres años. El inconveniente es que las materias primas no suben todos los meses por lo que hay meses en los que no tengo datos.
Tabla de valores de materia prima
Columnas: Año/mes
Filas: Precios de diferentes materias primas
En la tabla se observa que por ejemplo durante octubre y noviembre 2020 no hubo actualización de precios.
Para los casos donde hay subas en meses consecutivos, no tuve problema con obtener los %
Es decir que en este caso me faltaría obtener la variación porcentual entre septiembre 2020 y diciembre 2020 (entre otros varios periodos).
Desde ya agradezco cualquier aporte!!!
Saludos,
Solved! Go to Solution.
No @flitvak,
Creo que es posible que deba utilizar la función Dax para averiguar la última fecha que existía valor válido en la tabla, a continuación, puede utilizar esto con el valor de categoría actual para buscar el valor correspondiente para compararlo con los valores actuales y anteriores.
measure =
VAR currDate =
MAX ( Table[Date] )
VAR prevDate =
CALCULATE (
MAX ( Table[Date] ),
FILTER ( ALLSELECTED ( Table ), [Date] < currDate && [Amount] <> BLANK () ),
VALUES ( Table[Category] )
)
VAR prevAmount =
CALCULATE (
SUM ( Table[Amount] ),
FILTER ( ALLSELECTED ( Table ), [Date] = prevDate ),
VALUES ( Table[Category] )
)
RETURN
DIVIDE ( SUM ( Table[Amount] ) - prevAmount, prevAmount )
saludos
Xiaoxin Sheng
No @flitvak,
Creo que es posible que deba utilizar la función Dax para averiguar la última fecha que existía valor válido en la tabla, a continuación, puede utilizar esto con el valor de categoría actual para buscar el valor correspondiente para compararlo con los valores actuales y anteriores.
measure =
VAR currDate =
MAX ( Table[Date] )
VAR prevDate =
CALCULATE (
MAX ( Table[Date] ),
FILTER ( ALLSELECTED ( Table ), [Date] < currDate && [Amount] <> BLANK () ),
VALUES ( Table[Category] )
)
VAR prevAmount =
CALCULATE (
SUM ( Table[Amount] ),
FILTER ( ALLSELECTED ( Table ), [Date] = prevDate ),
VALUES ( Table[Category] )
)
RETURN
DIVIDE ( SUM ( Table[Amount] ) - prevAmount, prevAmount )
saludos
Xiaoxin Sheng
Muchas gracias Xiaoxin por la ayuda!!! Era justo lo que necesitaba!!!
Nada más le adapté la fecha en la variable currDate y funcionó a la perfección. El código me quedó así:
No @flitvak,
Me alegra oír que mi fórmula ayuda. 😊
Si tiene algún otro requisito, puede sentirse libre de publicar aquí con información detallada.
saludos
Xiaoxin Sheng
Tenga una tabla separada con todos los meses (preferiblemente una tabla de calendario adecuada) y luego cree una medida que calcule para cada mes cuál es la última actualización de precios (ya sea para el mes actual o para el mes máximo que es menor que el mes actual).
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.