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

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.

Reply
Anonymous
Not applicable

Filtrado y comparación por número anterior y número actual

Hola a todos

Tengo esta columna CALENDARYEARWEEK:

CALENDARYEARWEEKPaís
202026Fi
202032Fi
202026Dk
202031Dk
202032Dk

y baiscally Quiero comparar un cierto valor para la semana anterior y la semana actual en esa columna: Así que, para DK, quiero comparar la semana 32 con 31 y para FI quiero comparar la semana 26 con 32?

Para DK:
prev (CALCULATE(SUM(AMOUNT), FITLER(SALES, semana anterior(202031))
(CALCULATE(SUM(AMOUNT), FITLER(SALES, semana actual (202032))

devolución

cur - prev

Y la comparación entre las dos semanas dará la diferencia porcentual.
¿Es posible hacer esto? y crear esta dinámica? por ejemplo, al insertar la semana 33, comparar con 32?

Gracias por su atención,

Atentamente.

1 ACCEPTED SOLUTION

Hey @bf4123 ,

Asumo que esta es la medida que está buscando:

previous value = 
SUMX(
    VALUES( Fact_Potential[Country] )
    , var maxValue = CALCULATE( MAX( 'Fact_Potential'[Calendar Year Week]) , ALL( Fact_Potential[Calendar Year Week] ) )
    return
    IF( MAX( 'Fact_Potential'[Calendar Year Week] ) < maxValue 
        , BLANK()    
        , CALCULATE(
            LASTNONBLANKVALUE( 'Fact_Potential'[Calendar Year Week] , [Total Potential] )
            , FILTER( ALL( Fact_Potential[Calendar Year Week] ) , 'Fact_Potential'[Calendar Year Week] < MAX( 'Fact_Potential'[Calendar Year Week] ) )
    )
))

saludos

Tom



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany

View solution in original post

9 REPLIES 9
TomMartens
Super User
Super User

Hey @bf4123 ,

esta medida

previous value = 
SUMX(
    VALUES( Fact_Potential[Country] )
    , CALCULATE(
        LASTNONBLANKVALUE( 'Fact_Potential'[Calendar Year Week] , [Total Potential] )
        , FILTER( ALL( Fact_Potential[Calendar Year Week] ) , 'Fact_Potential'[Calendar Year Week] < MAX( 'Fact_Potential'[Calendar Year Week] ) )
    )
)

calcula la base de valores anterior en el archivo de ejemplo que proporcionó. Sin usar la tabla DimDate.
Según el tamaño del conjunto de datos, este enfoque puede ser suficiente. Con respecto al artículo, yo llamo a esto el enfoque ingenuo.

Una captura de pantalla:

TomMartens_0-1604838075079.png

Con suerte, esto es lo que estás buscando.

saludos

Tom



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany
Anonymous
Not applicable

Hola @TomMartens ,

Yo también usé esa medida de tu artículo.


Es casi lo que pretendo, pero sólo quiero, en el caso de DK, consiguiendo los valores de 202031 (no 202026) para comparar con el valor más actual 202032, es decir, siempre quiero comparar con los más actuales, en este caso es 202032, con el anterior 202031, y en el caso de FI y FR es comparar 202032 con 202062.

Y en el futuro si inserto el valor 202033, quiero comparar con 202032.

Una captura de pantalla:

Capture.PNG

Tal vez pueda crear un filtro de año de Calendario Máximo como:
CASO CUANDO
[CALENDARYEARWEEK] Á (SELECT MAX([CALENDARYEARWEEK]) FROM [clc].[ FACT_PROSPECT])
ENTONCES 1
ELSE 0
END AS [IsMaxCalendar]

y ponerlo en el Panel de filtro, pero me temo que si hago eso, sólo obtendré los valores para 202032.

Una vez más muchas gracias tanto y amables saludos!

Hey @bf4123 ,

sólo para asegurarme de que entiendo su requisito 100%, traté de frasear una regla de negocios a continuación:

  • El valor anterior no debe calcularse para Country:DK y Calendar Year Week:202031.
  • Solo se debe calcular un valor anterior para cada país, solo para el valor más reciente (máx.) en la columna Semana del año calendario

saludos

Tom



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany
Anonymous
Not applicable

Hola @TomMartens


Por lo tanto, sólo necesito calcular la diferencia entre el valor más actual y el valor anterior:

  1. por ejemplo en DK, el valor más actual es 202032 y el valor de Total Potential es 233438 y tengo que calcular la diferencia con 202031 que es 46093479. (Valor más actual 233438 - Valor anterior 46093479);
  2. Para FI, por ejemplo, el valor más actual es 202032, y el valor de Total Potential es 1643682 y tengo que calcular la diferencia con el valor anterior 202026, 24699009 (potencial total). (Valor más actual 1643682 - Valor anterior 24699009)

Siempre es la diferencia entre el valor más actual y el valor anterior del valor actual.

Cuando se introduce un nuevo valor de la semana del año natural 202033, calculará la diferencia en el potencial total entre 202033 y 202032. Por ejemplo DK (Valor más actual - Nuevo valor anterior 233438 (202032))

Avísame si te expliqué bien,

Gracias y amables saludos !

Hey @bf4123 ,

Asumo que esta es la medida que está buscando:

previous value = 
SUMX(
    VALUES( Fact_Potential[Country] )
    , var maxValue = CALCULATE( MAX( 'Fact_Potential'[Calendar Year Week]) , ALL( Fact_Potential[Calendar Year Week] ) )
    return
    IF( MAX( 'Fact_Potential'[Calendar Year Week] ) < maxValue 
        , BLANK()    
        , CALCULATE(
            LASTNONBLANKVALUE( 'Fact_Potential'[Calendar Year Week] , [Total Potential] )
            , FILTER( ALL( Fact_Potential[Calendar Year Week] ) , 'Fact_Potential'[Calendar Year Week] < MAX( 'Fact_Potential'[Calendar Year Week] ) )
    )
))

saludos

Tom



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany
Anonymous
Not applicable

Hey @TomMartens ,

Sí, esto es lo que quiero !! Muchas gracias por todo su apoyo, usted ayudó mucho.

Manténgase seguro y amable saludos !

Anonymous
Not applicable

Hola @TomMartens

Muchas gracias por todo el apoyo, su artículo es muy bueno!, voy a tratar de seguir los pasos y crear la solución.

Sin embargo, dejo el enlace que contiene el archivo csv que crea los datos de ejemplo y el archivo pbix si desea echar un vistazo también:
https://1drv.ms/u/s!AnhB73hnka5JgXeHyZ-UhZ3aZXqP?e=SbTydX

Una vez más, gracias y amables saludos!

Anonymous
Not applicable

Hola @TomMartens,

Gracias por todo el apoyo, su artículo es muy bueno !! Seguiré los pasos y crearé la solución también.

Sin embargo, dejo aquí el enlace que contiene el archivo csv que crea los datos de ejemplo y el archivo pbix si desea echar un vistazo también:
Enlace: https://1drv.ms/u/s!AnhB73hnka5JgXYR5MYH4GwWxLyS?e=Djtt8Q

Una vez más, gracias y amables saludos!!

TomMartens
Super User
Super User

Hey @bf4123 ,

básicamente, es posible, pero no es tan sencillo determinar la semana anterior. Y el uso de un enfoque más obvio se vuelve lento en conjuntos de datos más grandes, los archivos de ejemplo también contienen medidas para las soluciones más obvias, aprovechando las funciones de DAX LASTNONBLANKVALUE.

Aquí describo un enfoque diferente para determinar un valor anterior: https://www.minceddata.info/2020/11/02/the-previous-value/

Si necesita más ayuda para adaptar el enfoque a los datos, prepare un archivo pbix que contenga datos de ejemplo pero que refleje el modelo de datos. Cargue el archivo en onedrive o Dropbox y comparta el enlace. Si utiliza un xlsx para crear los datos de ejemplo, comparta también el archivo.

saludos

Tom



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.