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

Calculo de costes

Hola,

 

Llevo un buen rato intentando sacar algo bastante simple en excel pero que en PowerBi se me resiste... a ver si alguien me puede ayudar 🙂 

 

Tengo una serie de productos y cada uno de ellos tiene un coste mensual.

 

En cada mes, tengo una cantidad de cada uno y necesito saber el coste mensual total. 

 

*la columna tachada es el ID de cada producto.

JMS1985_0-1606406751739.png

Esta es la tabla que quiero reflejar:

JMS1985_1-1606406816479.png

*El total muestra: unidades medias (correcto), cuota mes (Correcto por linea, incorrecto en total).

 

La cuota individual para cada ID me sale bien, pero el problema lo tengo con el total... La suma de los importes individuales no me da la suma total (se porque es pero no se como resolverlo).

 

El problema lo tengo en las medidas que uso:

 

Cuota = SUM([Cuota diaria])*[unidades]
Cuota mes= [Cuota]*COUNT('Función invocada'[Fecha])

 

Necesito basicamente multiplicar la Cuota Diaria por el numero de unidades. Sin embargo, solo me deja multiplicar si añado una funcion delante de Cuota Diaria, en este caso es SUM. Por ello, en el total, realiza la suma de todas las cuotas y me lo multiplica por las unidades medias.... esto me da un valor mas alto del que deberia.

 

Alguna idea? seguramente sea algo extremadamente facil, pero soy bastante nuevo en PowerBi

 

Muchas gracias,

1 ACCEPTED SOLUTION
v-yingjl
Community Support
Community Support

Hola @JMS1985 ,

Esto parece un problema de totales de medida. Muy común. Ver este post al respecto
https://community.powerbi.com/t5/DAX-Commands-and-Tips/Dealing-with-Measure-Totals/td-p/63376

Además, esta Medida Rápida, Medir Totales, La Palabra Final debe obtener lo que necesita:
https://community.powerbi.com/t5/Quick-Measures-Gallery/Measure-Totals-The-Final-Word/m-p/547907

En este caso, puede crear otra medida como esta para fijar el valor total en la matriz:

Unit_avg = AVERAGE('Table'[Units])
Cuota = 
VAR tab =
    ADDCOLUMNS (
        'Table',
        "avg_unit",
            CALCULATE (
                AVERAGE ( 'Table'[Units] ),
                FILTER (
                    ALL ( 'Table' ),
                    'Table'[ID] = EARLIER ( 'Table'[ID] )
                        && 'Table'[Date].[MonthNo] = EARLIER ( 'Table'[Date].[MonthNo] )
                )
            ),
        "v",
            CALCULATE (
                SUM ( 'Table'[value] ),
                FILTER (
                    ALL ( 'Table' ),
                    'Table'[ID] = EARLIER ( 'Table'[ID] )
                        && 'Table'[Date].[MonthNo] = EARLIER ( 'Table'[Date].[MonthNo] )
                )
            )
                * CALCULATE (
                    AVERAGE ( 'Table'[Units] ),
                    FILTER (
                        ALL ( 'Table' ),
                        'Table'[ID] = EARLIER ( 'Table'[ID] )
                            && 'Table'[Date].[MonthNo] = EARLIER ( 'Table'[Date].[MonthNo] )
                    )
                )
    )
VAR tb =
    SUMMARIZE ( tab, [ID], [v] )
RETURN
    IF (
        ISINSCOPE ( 'Table'[ID] ),
        SUM ( 'Table'[value] ) * [Unit_avg],
        SUMX ( tb, [v] )
    )

cost.png

Adjunto un archivo de muestra en el siguiente, espera ayudarle.

Saludos
Equipo de apoyo a la comunidad _ Yingjie Li
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

2 REPLIES 2
v-yingjl
Community Support
Community Support

Hola @JMS1985 ,

Esto parece un problema de totales de medida. Muy común. Ver este post al respecto
https://community.powerbi.com/t5/DAX-Commands-and-Tips/Dealing-with-Measure-Totals/td-p/63376

Además, esta Medida Rápida, Medir Totales, La Palabra Final debe obtener lo que necesita:
https://community.powerbi.com/t5/Quick-Measures-Gallery/Measure-Totals-The-Final-Word/m-p/547907

En este caso, puede crear otra medida como esta para fijar el valor total en la matriz:

Unit_avg = AVERAGE('Table'[Units])
Cuota = 
VAR tab =
    ADDCOLUMNS (
        'Table',
        "avg_unit",
            CALCULATE (
                AVERAGE ( 'Table'[Units] ),
                FILTER (
                    ALL ( 'Table' ),
                    'Table'[ID] = EARLIER ( 'Table'[ID] )
                        && 'Table'[Date].[MonthNo] = EARLIER ( 'Table'[Date].[MonthNo] )
                )
            ),
        "v",
            CALCULATE (
                SUM ( 'Table'[value] ),
                FILTER (
                    ALL ( 'Table' ),
                    'Table'[ID] = EARLIER ( 'Table'[ID] )
                        && 'Table'[Date].[MonthNo] = EARLIER ( 'Table'[Date].[MonthNo] )
                )
            )
                * CALCULATE (
                    AVERAGE ( 'Table'[Units] ),
                    FILTER (
                        ALL ( 'Table' ),
                        'Table'[ID] = EARLIER ( 'Table'[ID] )
                            && 'Table'[Date].[MonthNo] = EARLIER ( 'Table'[Date].[MonthNo] )
                    )
                )
    )
VAR tb =
    SUMMARIZE ( tab, [ID], [v] )
RETURN
    IF (
        ISINSCOPE ( 'Table'[ID] ),
        SUM ( 'Table'[value] ) * [Unit_avg],
        SUMX ( tb, [v] )
    )

cost.png

Adjunto un archivo de muestra en el siguiente, espera ayudarle.

Saludos
Equipo de apoyo a la comunidad _ Yingjie Li
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

amitchandak
Super User
Super User

@JMS1985, no muy claro. ¿Puede compartir datos de ejemplo y salida de ejemplo en formato de tabla? O una muestra de pbix después de eliminar datos confidenciales.

Ahora en caso de que necesite multiplicar que necesita tener ese nivel de línea

Una columna [Tarifa diaria]*[unidades]

o Medir un sumx de nivel de línea(Tabla,[Tarifa diaria]*[unidades])

si no es posible, entonces presione la medida en el nivel inferior

aquí ambos [Tarifa diaria], [unidades] son medidas

La división siempre debe ser una medida

divide(Sum(Table[A]), Sum(Table[B]))

sumx(values(Table[ID]),[Daily Fee]*[units])

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.