Medida para clasificar consumos

Buen día tengo un modelo en el cual agrupo clientes de acuerdo a un identificador («Class») esto en la tabla clientes por otro lado tengo la tabla ventas y aquí las transacciones están registradas por numero de cliente requiero formular una medida que me compare los consumos y me indique si el grupo de clientes en función del agrupador («Class»)  tuvo incremento, decremento, etc en función de esta comparación que en una primera instancia si funciona pero lo aplica solo a nivel cliente y lo requiero a nivel «Class» por favor pueden orientarme como a como lograrlo.

la medida que utilizo es la siguiente:

 

=SWITCH(TRUE(),AND(CALCULATE(Sales[Consumo Anterior])>0,CALCULATE(Sales[Consumo Actual])>0),
                    SWITCH(TRUE(),
                    CALCULATE(Sales[Consumo Anterior])>CALCULATE(Sales[Consumo Actual]),"Decremento",
                    CALCULATE(Sales[Consumo Anterior])<CALCULATE(Sales[Consumo Actual]),"Incremento",
                    CALCULATE(Sales[Consumo Anterior])=CALCULATE(Sales[Consumo Actual]),"Sin Crecim.",
                    BLANK()),
        AND(CALCULATE(Sales[Consumo Anterior])<=0,CALCULATE(Sales[Consumo Actual])>0),
                    SWITCH(TRUE(),
                    CALCULATE(Sales[Consumo Anterior])<CALCULATE(Sales[Consumo Actual]),"Nuevo",
                    BLANK()),
        AND(CALCULATE(Sales[Consumo Anterior])>0,CALCULATE(Sales[Consumo Actual])<=0),
                    SWITCH(TRUE(),
                    CALCULATE(Sales[Consumo Anterior])>CALCULATE(Sales[Consumo Actual]),"Perdido",
                    BLANK()),
        AND(CALCULATE(Sales[Consumo Anterior])<=0,CALCULATE(Sales[Consumo Actual])<=0),"Sin Mov",
        BLANK())

 

Con la medida anexa obtengo este resumen

 

Este es el resumen que espero obtener.

 

 

Hola Rubén,

He preparado unos datos ficticios (todo lo simples que me ha sido posible) para simular tu escenario: Dos tablas, una con clientes:

Datos de clientes

...que, como puedes ver, solo tiene el identificador del cliente y la clase a la que pertenece.

Y una segunda tabla con información de ventas que, para simplificar, solo tiene ventas del año 2019 (entre enero y diciembre):

Datos de ventas

En la tabla ves que solo tengo la fecha, el identificador del cliente y la cantidad implicada en la venta.

Ahora, para simular tu escenario, he creado dos medidas para modelar lo que entendemos por "Consumo" y "Consumo anterior". Nuevamente, para simplificar, considero que el consumo es la cantidad implicada en el contexto temporal actual (sea el que sea), y que el consumo anterior hace referencia al consumo del mes anterior al consumo actual. Podría hacerse más sofisticado de forma que la medida calculase automáticamente el período actual considerado y apuntase al mismo periodo anterior, etc. Pero quería hacerlo simple. Mis dos medidas:

Consumo = SUM(Ventas[Cantidad])

 

Consumo LM =

     CALCULATE(

     [Consumo];

     PARALLELPERIOD(Calendario[Date]; -1; MONTH)

)

Si tu consumo anterior sale de un campo que ya exista, más fácil todavía...

Ahora, la medida que me compara ambas cifras:

Status = SWITCH(

    TRUE();

    [Consumo] > [Consumo LM]; "Incremento";

    [Consumo] < [Consumo LM]; "Decremento";

    "Sin crecimiento"

)

Esta medida funciona en cualquier contexto. Como estoy suponiendo que el consumo anterior es del mes anterior, para poder probar mis medidas he creado una segmentación por meses y he seleccionado uno de ellos:

Segmentador por meses

Ahora creo una matriz con la clase en filas, y el status, consumo y consumo anterior a valores (entiendo que esto es lo que no consigues obtener tú):

Status por clase

Si llevo el identificador de cada cliente a filas (para crear una jerarquía) y muestro los dos niveles, obtengo el detalle por cliente:

Status por clase y cliente

Confírmame que este es el tipo de resultado que buscas, por favor.

Un saludo

Daniel

Enviado por ruben andres el Lun, 05/08/2019 - 20:36