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
Nabihe
Frequent Visitor

Medida para contabilizar según criterio de comparativo de periodos distintos en el tiempo

Hola a todos! Este es mi primer post, necesito ayuda con lo siguiente, he intentado algunas funciones, pero no me queda bien. Necesito  crear una medida para contabilizar la cantidad de empresas que cumplan con el siguiente criterio: que la suma de ventas entre el periodo del trimeste actual hasta hace 3 trimestres atras sea menor o igual que cero, y que la suma las ventas en el periodo entre 4 y 7 trimestres atras sea positivo. 

Es decir,  si la suma ventas de Q0 a Q-3 <=0, y  suma ventas Q-4 a Q-7 >0, entonces que contabilice a la empresa, sino no. 

Dejo un ejemplo de una tabla cruzada para que se entiena mejor lo que necesito contabilizar con la medida:

 

 

Nabihe_0-1616981041671.png

 

La medida entonces, debe dar como resultado ese 2 marcado en azul. 

Luego la medida va a ser filtrada por lugar y tipo de productos que vende. 

Aclaro que tengo creada una tabla calendario, y que la base de datos esta normalizada, cada fila tiene datos por una empresa, producto, lugar y fecha. 

 

Desde ya muchas gracias!!

 

Saludos

 

 

 

 

1 ACCEPTED SOLUTION

No @Syndicate_Admin,

Pruebe la siguiente fórmula:

Result = 
var MaxDate = MAXX(ALL('Sales Table'),'Sales Table'[date])
var Q_3 = EDATE(MaxDate,-9)
var Q_7 = EDATE(MaxDate,-21)
var Q_3_Start = 
    MINX(
        FILTER(
            ALL('Calendar'),
            'Calendar'[Year_Quarter] = YEAR(Q_3)&"Q"&QUARTER(Q_3) 
        ),
    'Calendar'[Date]
    )
var Q_7_Start = 
    MINX(
        FILTER(
            ALL('Calendar'),
            'Calendar'[Year_Quarter] = YEAR(Q_7)&"Q"&QUARTER(Q_7) 
        ),
    'Calendar'[Date]
    )
var SumaUltimos_4Q = 
    CALCULATE(
        SUM('Sales Table'[sales]),
        'Sales Table'[date] >= Q_3_Start
    )
var Suma_Q4Q7 =  
    CALCULATE(
        SUM('Sales Table'[sales]),
        'Sales Table'[date] < Q_3_Start
        && 'Sales Table'[date] >= Q_7_Start
    )
return IF(Suma_Q4Q7 > 0 && SumaUltimos_4Q <= 0, 1, 0)

v-kkf-msft_0-1617171010477.png

Si el problema aún no se ha resuelto, proporcione información detallada sobre errores o el resultado esperado que espera. Hágamelo saber inmediatamente, esperando su respuesta.

Saludos
Winniz

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

View solution in original post

4 REPLIES 4
Nabihe
Frequent Visitor

Gracias por la respuesta!

Lo que necesito es contabilizar la cantidad de empresas que cumplen con esta condición: 

que las ventas entre el periodo quarter actual hasta 3 quarters atras sea 0  ( es decir la suma del querter actual, el quarter -1, el quarter -2 y el quarter -3 sea menor o igual a 0), y que la suma de las ventas del periodo de 4 quarter atras hasta 7 quarter ( es decir, la suma de quarter -4, quarter -5, quarter -6, quarter -7) sea mayor a cero. 

Lo que necesito es contabilizar la cantidad de empresas que cumplen ese criterio, que no tengas ventas del qr actual hasta tres quarter atras, pero que sí tengan ventas de 4 quarter hasta 7 quarters atras. 

 

Gracias!

 

Tengo la tabla de ventas, y la tabla calendario relacionas. 

No @Syndicate_Admin,

Pruebe la siguiente fórmula:

Result = 
var MaxDate = MAXX(ALL('Sales Table'),'Sales Table'[date])
var Q_3 = EDATE(MaxDate,-9)
var Q_7 = EDATE(MaxDate,-21)
var Q_3_Start = 
    MINX(
        FILTER(
            ALL('Calendar'),
            'Calendar'[Year_Quarter] = YEAR(Q_3)&"Q"&QUARTER(Q_3) 
        ),
    'Calendar'[Date]
    )
var Q_7_Start = 
    MINX(
        FILTER(
            ALL('Calendar'),
            'Calendar'[Year_Quarter] = YEAR(Q_7)&"Q"&QUARTER(Q_7) 
        ),
    'Calendar'[Date]
    )
var SumaUltimos_4Q = 
    CALCULATE(
        SUM('Sales Table'[sales]),
        'Sales Table'[date] >= Q_3_Start
    )
var Suma_Q4Q7 =  
    CALCULATE(
        SUM('Sales Table'[sales]),
        'Sales Table'[date] < Q_3_Start
        && 'Sales Table'[date] >= Q_7_Start
    )
return IF(Suma_Q4Q7 > 0 && SumaUltimos_4Q <= 0, 1, 0)

v-kkf-msft_0-1617171010477.png

Si el problema aún no se ha resuelto, proporcione información detallada sobre errores o el resultado esperado que espera. Hágamelo saber inmediatamente, esperando su respuesta.

Saludos
Winniz

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

Gracias por la ayuda, disuclpe que recien veo que habian puesto el archivo. Probe la solucion pero no me suma, da 0. 

Por las dudas, voy a detallar mejor com es el modelo, la tabla de datos y el resultado. 

el modelo de datos es simil a esto: 

 

Nabihe_0-1619203488983.png

 

La tabla de revenue de donde sales las ventas, la estructura es dimilar a esta: 

fechaid_empresaid_skuid_categoriapais Revenue 
01/03/2021127panama $         100,00
01/12/20201 7panama 
01/09/20201 7panama 
01/06/20201 7panama 
01/03/2020157panama $         500,00
01/12/20191 7panama 
01/09/2019157panama $     1.000,00
01/06/20191 7panama 
01/03/2019127panama $             4,00
01/12/20181 7panama 
01/03/2021223costa rica $     1.297,00
01/12/2020223costa rica $         900,00
01/09/2020223costa rica 
01/06/2020223costa rica $         149,00
01/03/2020253costa rica $     1.000,00
01/12/20192 3costa rica $         333,00
01/09/2019223costa rica $         795,00
01/06/2019243costa rica $         400,00
01/03/2019223costa rica $         650,00
01/12/2018223costa rica $         300,00
01/12/2018223costa rica $         600,00
01/03/2021233costa rica $         360,00
01/12/2020223costa rica $         240,00
01/09/2020223costa rica $         400,00
01/06/2020253costa rica $         678,00
01/03/2020223costa rica $     1.300,00
01/12/2019223costa rica $           60,00
01/09/2019223costa rica $     1.000,00
01/06/2019223costa rica $         400,00
01/03/2019223costa rica $         200,00
01/12/2018223costa rica $         300,00

 

Entonces, lo que necesito medir es la cantidad de esas empresas ( por el id) que cumplen con la condicion esa descripta anteriormente, que no tengas ventas en los ultimos 4 cuatrimestres, pero si hayan tenido ventas en los 4 cuatrimestres anteriores a esos. 

El resultado verlo en una tabla en pbi, y ademas que esa tabla se filtre con los segmentadores de categoria de empresa, pais, y sku.  Espero haberme explicado mejor.  Gracias

 

quartercantidad empresas que cumplen la condicion
2020-Q26
2020-Q35
2020-Q420
2021-Q110
Syndicate_Admin
Administrator
Administrator

@Syndicate_Admin , No muy claro, Pero con la ayuda de la tabla de fechas se puede obtener qtr rodante

Rolling 3 = CALCULATE(sum(Sales[Sales Amount]),DATESINPERIOD('Date'[Date],MAX('Date'[Date]),-3,Quarter))

Rodando 3 antes de 3 = CALCULATE(sum(Sales[Sales Amount]),DATESINPERIOD('Date'[Date],MAXX('Date',dateadd('Date'[Date],-3,Quarter)),-3,Quarter))

Para obtener lo mejor de la función de inteligencia del tiempo. Asegúrese de que tiene un calendario de fechas y se ha marcado como la fecha en la vista de modelo. Además, únete a ella con la columna de fecha de tus hechos/s. Refer :radacad sqlbi Mi serie de vídeos Apreciar sus Felicitaciones.

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.