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
brunomoriya
Helper I
Helper I

Total acumulado/en ejecución que se restablece después de que otra columna llegue a cero

¡Hola a todos!

He probado algunas soluciones para totales acumulativos de otros mensajes, pero no puedo resolver mi problema.

La siguiente tabla como ejemplo de lo que necesito.

Tengo diferentes fechas / hora y descripción de entrada / salida, para muchos 'Tipos' (AHKW, YYKW como ejemplo).

Se calcula la columna 'Cantidad total corriente':

Cantidad total en ejecución: CALCULATE (
SUM ( 'Tabla'[Cantidad] ),
FILTRO (
ALLEXCEPT( 'Tabla', 'Tabla'[Tipo]),
'Tabla'[Fecha] <-EARLIER( 'Tabla'[Fecha] )))

Cuando intento el mismo DAX para $ Totales obtengo 100,00 (ejemplo AHKW) pero debe ser 0 porque la cantidad acumulada es 0. Como resultado, la siguiente fecha de suma (-6560,00) es incorrecta y debe ser 6600,00.

Lo que necesito es el $ Running Total como la columna roja 'What should be'.

example.png

Muchas gracias!!

9 REPLIES 9
v-yingjl
Community Support
Community Support

Hola @brunomoriya ,

Según la tabla de datos de ejemplo, la columna calculada parece funcionar bien, la cantidad acumulada de totales como -5200 + 5300 solo es 100, ¿por qué o cómo podría ser 0? Si desea obtener el resultado de la columna roja, ¿cuál es su lógica calculada... no está seguro de ello...

Best Looks,
Yingjie Li

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

hey @v-yingjl !

-5200 + 5300 es $$$ valor, y el total de ejecución es correcto para ser +100,

pero la lógica es cuando Ejecutar total para QUANTITY es cero, Total en ejecución para $ es cero y se restablece, devolviendo el primer valor $$ y sigue sumando hasta que Ejecutar total para cantidad es cero de nuevo.

Hola @brunomoriya ,

Puede crear estas dos columnas calculadas:

Running Total Quantity = 
VAR _date = [Date]
VAR _type = [Type]
VAR tab =
    ADDCOLUMNS (
        SUMMARIZE (
            'Table',
            'Table'[Date],
            'Table'[IN / OUT],
            'Table'[Type],
            'Table'[Quantity]
        ),
        "Qty", IF ( [IN / OUT] = "OUT", 0 - [Quantity], [Quantity] )
    )
RETURN
    SUMX ( FILTER ( tab, [Type] = _type && [Date] <= _date ), [Qty] )
Running Total = 
VAR _date = [Date]
VAR _type = [Type]
VAR tab =
    ADDCOLUMNS (
        SUMMARIZE (
            'Table',
            'Table'[Date],
            'Table'[IN / OUT],
            'Table'[Type],
            'Table'[Totals],
            'Table'[Running Total Quantity]
        ),
        "total", IF (
            [Running Total Quantity] = 0,
            VAR _t = [Type]
            VAR _d = [Date]
            RETURN
                ABS (
                    CALCULATE (
                        MAX ( 'Table'[Totals] ),
                        FILTER (
                            ALL ( 'Table' ),
                            'Table'[Type] = _t
                                && 'Table'[Date]
                                    = CALCULATE (
                                        MAX ( 'Table'[Date] ),
                                        FILTER ( ALL ( 'Table' ), 'Table'[Type] = _t && 'Table'[Date] < _d )
                                    )
                        )
                    )
                ),
            [Totals]
        )
    )
RETURN
    SUMX ( FILTER ( tab, [Type] = _type && [Date] <= _date ), [total] )

La tabla de resultados será así:

cultivate values.png

Archivo de ejemplo adjunto que espera ayudarle, compruebe y pruébelo: Total acumulado/en ejecución que se restablece después de que otra columna llegue a zero.pbix

Best Looks,
Yingjie Li

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola de nuevo @v-yingjl,

Estaba analizando todos mis datos originales después de aplicar esa solución y tengo una situación aquí!

Tengo un tipo 'KKZW' que termina en 20/04/2020 y no hay más "IN" después de eso, diferente de otros tipos que tienen nuevos "IN" después de que la cantidad llega a cero.

Parece que es conseguir la primera fecha de cada tipo!

Voy a tratar de arreglar esa solución DAX, pero voy a apreciar cualquier ayuda!

EXAMPLE2.png

woooowww @v-yingjl eres un ninja!

que funcionó muy bien! súper gracias!

danextian
Super User
Super User

Hola @brunomoriya ,

Prueba esto por favor:

Running Total =
CALCULATE (
    SUM ( 'Table'[Quantity] ),
    ALLEXCEPT ( 'Table', 'Table'[Type] ),
    'Table'[Date] <= EARLIER ( 'Table'[Date] )
)

O

Running Total =
CALCULATE (
    SUM ( 'Table'[Quantity] ),
    ALL (
        'Table',
        'Table'[Type] = EARLIER ( 'Table'[Type] )
            && 'Table'[Date] <= EARLIER ( 'Table'[Date] )
    )
)










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


Proud to be a Super User!









"Tell me and I’ll forget; show me and I may remember; involve me and I’ll understand."
Need Power BI consultation, get in touch with me on LinkedIn or hire me on UpWork.
Learn with me on YouTube @DAXJutsu or follow my page on Facebook @DAXJutsuPBI.
AllisonKennedy
Super User
Super User

Parece que esto es un problema con su columna $ Totales entonces, no el Total de Ejecución $. El total de ejecución $ está haciendo exactamente lo solicitado, y tomando la columna -52000 de $ Totales y agregando 5300. ¿Cómo le gustaría que calculara en su lugar? ¿Hay un estándar $/Unit que desee usar?

Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

Hola, ¿es posible que proporcione el mismo código de ejemplo en Excel Power Query? El resultado debería restablecer el total acumulado a 0 y comenzar a hacer el total de ejecución cuando el valor en otro campo (cantidad) es cero.

Saludos

Haresh

Hola@AllisonKennedy !

La columna 'Running Total $' es sólo una referencia, está haciendo lo correcto como usted dijo, pero lo que necesito cuando 'Ejecutar TOTAL QUANTITY' llega a cero (porque IN - OUT - cero , 2 horas y medio más tarde), 'Running Total $" es cero, y restablece el 'Running Total $', devolviendo el primer valor para '$ Total' y seguir sumando hasta que 'Running Total QUANTITY' llegue a cero de nuevo.

Los cuadrados rojos en el ejemplo de datos muestran cuando la CANTIDAD de totales en ejecución alcanza cero, $$ debe ser cero y se restablece de nuevo, devolviendo el valor $ más temprano y seguir sumando hasta que la CANTIDAD de totales en ejecución vuelva a ser cero.

No estoy seguro si estoy claro, lo siento por mala 🙂

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.