Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
flitvak
Helper I
Helper I

Variación respecto a periodo anterior (periodos discontinuos)

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

flitvak_0-1616788291671.png

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 %

flitvak_1-1616788674168.png

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,

 

 

 

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

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

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

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í:

 

% Aumento =
VAR currDate =
MAX ( OCA[Fecha de emisión] )
VAR prevDate =
CALCULATE (
MAX ( 'Tabla calendario'[Date] );
FILTER ( ALLSELECTED ('Tabla calendario'); 'Tabla calendario'[Date] < currDate && [MAX precio] <> BLANK () );
VALUES ( OCA[Artículo] )
)
VAR prevAmount =
CALCULATE (
max(OCA[Precio unitario sin descuentos UM compras]);
FILTER ( ALLSELECTED ( 'Tabla calendario' ); 'Tabla calendario'[Date] = prevDate );
VALUES ( OCA[Artículo] )
)
RETURN
DIVIDE ( max(OCA[Precio unitario sin descuentos UM compras]) - prevAmount; prevAmount )

 

 

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

Syndicate_Admin
Administrator
Administrator

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).

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors