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

Promedio por categoría y tipo

Buenas tardes tengo un problema que no puedo resolver tengo una tabla que tiene diferentes tipos y categorías de producto y quiero calcular un indicador añadiendo las diferencias que existen entre ellos.

Mesa

Id

Tipo

CATEG

Costo

1

A

X

1524

2

A

Y

1544

3

A

Z

1569

4

B

X

1599

5

B

Y

1634

6

B

Z

1674

7

A

X

1719

8

A

Y

1769

9

A

Z

1824

10

B

X

1884

Cálculo

CATEG

PROMEDIO TIPO A

PROMEDIO TIPO B

Dif

X

1621,5

1741,5

120

Y

1656,5

1634

-22,5

Z

1696,5

1674

-22,5

MEDIR SUMA TOTAL DIF 75

Quiero una medida que calcule la suma de los promedios por categoría y tipo, que luego puede ser mostrado por cualquier otra dimensión ¿Puede alguien ayudarme Gracias

1 ACCEPTED SOLUTION
v-eqin-msft
Community Support
Community Support

Hola @emionline ,

Siento mucho mi última respuesta.

Modifiqué la fórmula anterior, podría usar la siguiente fórmula:

averageA =
CALCULATE (
    AVERAGE ( 'Average table'[Cost] ),
    FILTER (
        ALL ( 'Average table' ),
        'Average table'[Category] = MAX ( 'Average table'[Category] )
            && [Type] = "A"
    )
)
averageB =
CALCULATE (
    AVERAGE ( 'Average table'[Cost] ),
    FILTER (
        ALL ( 'Average table' ),
        'Average table'[Category] = MAX ( 'Average table'[Category] )
            && [Type] = "B"
    )
)
Diff =
'Average table'[averageB] - 'Average table'[averageA]
sumDiff = 
VAR _diff = [averageB]- [averageA]
Var _a = SUMX(ADDCOLUMNS(VALUES('Average table'[Category]),"sumDiff",CALCULATE([Diff],ALLEXCEPT('Average table','Average table'[Category]))),[sumDiff])
return
IF(HASONEVALUE('Average table'[Category]),_diff, _a)

Mi visualización tiene este aspecto:

8.7.foll.PNG

¿He respondido a tu pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.

Si no es así, cargue algunas muestras de datos insensibles y la salida esperada.

Saludos

Eyelyn Qin

View solution in original post

6 REPLIES 6
v-eqin-msft
Community Support
Community Support

Hola @emionline ,

Siento mucho mi última respuesta.

Modifiqué la fórmula anterior, podría usar la siguiente fórmula:

averageA =
CALCULATE (
    AVERAGE ( 'Average table'[Cost] ),
    FILTER (
        ALL ( 'Average table' ),
        'Average table'[Category] = MAX ( 'Average table'[Category] )
            && [Type] = "A"
    )
)
averageB =
CALCULATE (
    AVERAGE ( 'Average table'[Cost] ),
    FILTER (
        ALL ( 'Average table' ),
        'Average table'[Category] = MAX ( 'Average table'[Category] )
            && [Type] = "B"
    )
)
Diff =
'Average table'[averageB] - 'Average table'[averageA]
sumDiff = 
VAR _diff = [averageB]- [averageA]
Var _a = SUMX(ADDCOLUMNS(VALUES('Average table'[Category]),"sumDiff",CALCULATE([Diff],ALLEXCEPT('Average table','Average table'[Category]))),[sumDiff])
return
IF(HASONEVALUE('Average table'[Category]),_diff, _a)

Mi visualización tiene este aspecto:

8.7.foll.PNG

¿He respondido a tu pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.

Si no es así, cargue algunas muestras de datos insensibles y la salida esperada.

Saludos

Eyelyn Qin

v-eqin-msft
Community Support
Community Support

Hola @emionline ,

Según mi entendimiento, desea calcular el promedio basado en la categoría y el tipo, y luego mostrar el valor menos, ¿verdad?

Puede usar la siguiente fórmula:

averageA =
CALCULATE (
    AVERAGE ( 'Average table'[Cost] ),
    FILTER (
        ALL ( 'Average table' ),
        [Category] = SELECTEDVALUE ( 'Average table'[Category] )
            && [Type] = "A"
    )
)
averageB =
CALCULATE (
    AVERAGE ( 'Average table'[Cost] ),
    FILTER (
        ALL ( 'Average table' ),
        [Category] = SELECTEDVALUE ( 'Average table'[Category] )
            && [Type] = "B"
    )
)
Diff =
[averageB] - [averageA]

Mis visualizaciones tienen este aspecto:

3.PNG

¿Es el resultado lo que quieres? Si no es así, cargue algunas muestras de datos y la salida esperada.
Por favor, enmascarar los datos confidenciales antes de cargar.
Saludos
Eyelyn Qin
ryan_mayu
Super User
Super User

@emionline

por favor trate de crear tres medidas

average type a = AVERAGEX(FILTER('Table','Table'[TYPE]="A"),'Table'[COST])

average type b = AVERAGEX(FILTER('Table','Table'[TYPE]="B"),'Table'[COST])

dif = [average type a]-[average type b]

1.PNG





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Muchas gracias por la respuesta, sólo queda resolver la medida que suma los promedios totales.
El resultado final debería dar -75
Esa es la medida que no puedo resolver y que necesito analizar con cualquier otra dimensión de la tabla

Muchas gracias por la respuesta, sólo queda resolver la medida que suma los promedios totales.
El resultado final debería dar 75
Esa es la medida que no puedo resolver y que necesito analizar con cualquier otra dimensión de la tabla

amitchandak
Super User
Super User

@emionline , Probar como

Tipo medio calculate(average(Table[COST]),allexcept(Table[TYPE]))

Promedio Categ calculado(Tabla[COST]),allexcept(Tabla[CATEG]))

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.