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
Fragan
Helper III
Helper III

Acumulado por meses en año de un valor calculado dentro de una medida

Oye

Tengo esta tabla "Datos" :

image.png

Y quería crear algunos nuevos atributos calculados usando el existente, por ejemplo Attribut3 es Valor Attribut2- Valor Attribut1.

Y para hacer esto, creé primero esta tabla con una sola columna:

Table3 = UNION(DISTINCT('Data'[attributes]);{{"Attribut3"}})

Y luego hizo una medida:

Measure2 = 
var attr_3 = CALCULATE ( SUM ( 'Data'[value] ); 'Data'[attributes] = "Attribut2" )
            - CALCULATE ( SUM ( 'Data'[value] ); 'Data'[attributes] = "Attribut1" )
Return SUMX (
    DISTINCT ( 'Table3'[attributes] );
    SWITCH (
        'Table3'[attributes];
        "Attribut3"; attr_3;
            var a = 'Table3'[attributes] return
        CALCULATE ( SUM ( 'Data'[value] );'Data'[attributes]=a)
    )
)

Y luego quiero añadir acumulativo por meses en el año de valores Attribut3, así que cambié la tabla a :

Table3 = UNION(DISTINCT('Data'[attributes]);{{"Attribut3"};{"Attribut3 **bleep**"}})

Y cambió la mesure a :

Measure2 = 
var attr_3 = CALCULATE ( SUM ( 'Data'[value] ); 'Data'[attributes] = "Attribut2" )
            - CALCULATE ( SUM ( 'Data'[value] ); 'Data'[attributes] = "Attribut1" )

Return SUMX (
    DISTINCT ( 'Table3'[attributes] );
    SWITCH (
        'Table3'[attributes];
        "Attribut3"; attr_3;
        "Attribut3 **bleep**"; CALCULATE( attr_3;  FILTER(ALL('Data'[date]); 'Data'[date]<= MAX('Data'[date])));
            var a = 'Table3'[attributes] return
        CALCULATE ( SUM ( 'Data'[value] );'Data'[attributes]=a)
    )
)

Y ese es el resultado im obtener :

image.png

Como puedes ver "Attribut3 **bleep**" no es la suma acumulada de "Attribut3" es sólo la duplicación de "Attribut3".

Soy un poco nuevo en PowerBI y realmente no puedo averiguar esto, estoy atascado con esto durante horas x)

Gracias de antemano.

6 REPLIES 6
v-kelly-msft
Community Support
Community Support

Hola @Fragan ,

Lo @sturlaws sugiere debería funcionar, si no funciona, cargue su archivo .pbix a un negocio de onedrive y comparta el enlace con nosotros, recuerde eliminar la información confidencial.

Saludos
Kelly
¿Respondí a tu pregunta? ¡Marca mi puesto como solución!
sturlaws
Resident Rockstar
Resident Rockstar

Hola @Fragan

intentar cambiar su primera medida a esto:

Measure =
VAR _attr =
    CALCULATE ( SELECTEDVALUE ( attributes[attr] ) )
RETURN
    SWITCH (
        TRUE ();
        _attr = 3; CALCULATE (
            SUM ( data[sales] );
            FILTER ( ALLEXCEPT ( data; data[month]; data[group] ); data[attr] = 2 )
        )
            - CALCULATE (
                SUM ( data[sales] );
                FILTER ( ALLEXCEPT ( data; data[month]; data[group] ); data[attr] = 1 )
            );
        CALCULATE (
            SUM ( data[sales] );
            FILTER ( ALLEXCEPT ( data; data[month]; data[group] ); data[attr] = _attr )
        )
    )

y su segunda medida a esto:

cumulative = 
var _month = CALCULATE(SELECTEDVALUE(data[month]))
return
CALCULATE([Measure];filter(all(data[month]);data[month]<=_month))

Salud
Sturla

Cómo obtener respuesta rápida a su pregunta

@sturlaws YAY funciona ! Gracias bud !

Tengo una última pregunta, ¿es posible acumular por meses sólo dentro del año? Como si no quisiera que el enero de 2020 se acumulara con diciembre de 2019

Hola @Fragan ,

Puede agregar una nueva columna utilizando la siguiente expresión dax:

Year=YEAR(data[Date])

A continuación, modifique las medidas como se indica a continuación:

Measure =
VAR _attr =
    CALCULATE ( SELECTEDVALUE ( attributes[attr] ) )
RETURN
    SWITCH (
        TRUE ();
        _attr = 3; CALCULATE (
            SUM ( data[sales] );
            FILTER ( ALLEXCEPT ( data; data[month]; data[Year],data[group] ); data[attr] = 2 )
        )
            - CALCULATE (
                SUM ( data[sales] );
                FILTER ( ALLEXCEPT ( data; data[month];data[Year]; data[group] ); data[attr] = 1 )
            );
        CALCULATE (
            SUM ( data[sales] );
            FILTER ( ALLEXCEPT ( data; data[month];data[Year]; data[group] ); data[attr] = _attr )
        )
    )
cumulative = 
var _month = CALCULATE(SELECTEDVALUE(data[month]))
return
CALCULATE([Measure];filter(all(data[month]);data[month]<=_month),ALLEXCEPT(data,data[Year]))

Saludos
Kelly
¿Respondí a tu pregunta? ¡Marca mi puesto como solución!

sí, sólo tiene que añadir año a la parte del filtro:

cumulative = 
var _month = CALCULATE(SELECTEDVALUE(data[month]))
var _year = CALCULATE(SELECTEDVALUE(data[year]))
return
CALCULATE([Measure];filter(all(data[month]);data[month]<=_month && data[year]=_year))

@sturlaws Tengo un último problema, cuando im tratando de aplicar otros filtros como filtro de grupo a mi Matix / Gráfico de barras, no está funcionando x)

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.