Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

Sumar valores de una columna hasta que se produce un cambio

Hola querida comunidad.

Me gustaría saber si alguien tiene una idea para una fórmula Dax. Mi deseo sería que los valores de esta columna se agreguen hasta que cambie mi ID. Después de cada cambio de identificador, los valores deben agregarse de nuevo a cero. Además, sería útil tener algún tipo de cuenta hasta este cambio de identificación. Incluso si se repite el identificador, como es el caso aquí, debe empezar a contar de nuevo después de cada cambio.

A continuación se muestra un ejemplo de cómo debería verse. Las fórmulas DAX deben poder generar las dos columnas de la derecha como aquí:

leovinc14_0-1628808483200.png

Estaría muy agradecido por algunas ideas, ya que ya he intentado algunas cosas sin éxito.

1 ACCEPTED SOLUTION

Ahí, @leovinc14

Pruebe las columnas calculadas de la siguiente manera:

flag_change = 
VAR ID1 = 'Table'[ID]
VAR ID2 =
    CALCULATE (
        MAX ( 'Table'[ID] ),
        FILTER ( 'Table', 'Table'[Index ID] = EARLIER ( 'Table'[Index ID] ) - 1 )
    )
RETURN
    IF ( ISBLANK ( ID2 ), 0, IF ( ID1 <> ID2, 1, 0 ) )   // change:1 unchange:0
New ID Index = 
CALCULATE (
    SUM ( 'Table'[flag_change] ),
    FILTER ( 'Table', 'Table'[Index ID] <= EARLIER ( 'Table'[Index ID] ) )
)
SUM = 
CALCULATE (
    SUM ( 'Table'[Number of something] ),
    FILTER (
        'Table',
        'Table'[New ID Index] = EARLIER ( 'Table'[New ID Index] )
            && 'Table'[Index ID] <= EARLIER ( 'Table'[Index ID] )
    )
)    //Group by 'New Id Index' to get the accumulated value
Count = 
CALCULATE (
    COUNTROWS('Table'),
    FILTER (
        'Table',
        'Table'[New ID Index] = EARLIER ( 'Table'[New ID Index] )
            && 'Table'[Index ID] <= EARLIER ( 'Table'[Index ID] )
    )
)

54.png

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

View solution in original post

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

Ok, descubrí que tengo menos memoria RAM disponible para ejecutar algunas fórmulas. Power BI muestra el mensaje de error que indica que "no hay suficiente RAM para realizar esta operación". Así que reordené las dos primeras fórmulas un poco para evitar este problema:

ChangeStatus = IF('Table'[ID]=LOOKUPVALUE('Table'[ID TS_TA_None_RC_tr],'Table'[Index ID],'Table'[Index ID]-1),"","changed")

ChangeIndex = COUNTX ( FILTER ( ALL ('Table'), 'Table'[Index ID] <= EARLIER('Table'[Index ID]) && 'Table'[ChangeStatus] <> ""), 'Table'[Index ID])

Inspirado en esta página: https://community.powerbi.com/t5/Desktop/Reinit-count-when-value-changes/m-p/205258

Todo funciona maravillosamente ahora. Realmente muchas gracias por sus soluciones! 😃👍

Pero, ¿alguien tiene una idea de cómo resolver este problema de memoria RAM sin actualizar físicamente la computadora portátil o PC?

Syndicate_Admin
Administrator
Administrator

Hola

Dentro de cada ID, ¿en qué orden debe ocurrir la adición? ¿Hay una columna de fecha en algún lugar?

Hay una "columna de identificador de índice" adicional como un número secuencial. Y una columna con una fecha, pero esto no está en el orden del índice.

leovinc14_0-1628815142095.png

Hola

Compartir datos en un formato que se puede pegar en un archivo de MS Excel. Los datos que comparte deben tener una columna Date.

Muchas gracias por sus respuestas. Pero el orden de la fecha no es el mismo que el id. Lo que es decisivo para mí es el orden de la identificación. El "Número de algo" es en realidad los días hasta que el cambio de ID. He actualizado el ejemplo para mostrar el problema. ¿Hay alguna manera de crear las dos columnas "Count" y "Sum" a partir de las demás mediante DAX o algo similar?

leovinc14_0-1628851526555.png

Ahí, @leovinc14

Pruebe las columnas calculadas de la siguiente manera:

flag_change = 
VAR ID1 = 'Table'[ID]
VAR ID2 =
    CALCULATE (
        MAX ( 'Table'[ID] ),
        FILTER ( 'Table', 'Table'[Index ID] = EARLIER ( 'Table'[Index ID] ) - 1 )
    )
RETURN
    IF ( ISBLANK ( ID2 ), 0, IF ( ID1 <> ID2, 1, 0 ) )   // change:1 unchange:0
New ID Index = 
CALCULATE (
    SUM ( 'Table'[flag_change] ),
    FILTER ( 'Table', 'Table'[Index ID] <= EARLIER ( 'Table'[Index ID] ) )
)
SUM = 
CALCULATE (
    SUM ( 'Table'[Number of something] ),
    FILTER (
        'Table',
        'Table'[New ID Index] = EARLIER ( 'Table'[New ID Index] )
            && 'Table'[Index ID] <= EARLIER ( 'Table'[Index ID] )
    )
)    //Group by 'New Id Index' to get the accumulated value
Count = 
CALCULATE (
    COUNTROWS('Table'),
    FILTER (
        'Table',
        'Table'[New ID Index] = EARLIER ( 'Table'[New ID Index] )
            && 'Table'[Index ID] <= EARLIER ( 'Table'[Index ID] )
    )
)

54.png

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

Gracias @v-easonf-msft por su solución sugerida.

La primera fórmula funciona bien. Hay un pequeño problema con la segunda fórmula "Nuevo índice de id.". El archivo real tiene más de 100.000 filas. Para la fórmula DAX se cargó durante horas sin mostrar un resultado, por lo que tuve que detenerme. ¿Alguna idea de cómo podría resolver este problema? ¿O podría dividirse la fórmula en dos o tres pasos para que el PC no se vea abrumado?

Atentamente

leovinc14

Hola

En la penúltima fila, ¿por qué la respuesta debería ser 5? ¿Por qué no debería seguir siendo 1? Además, comparta los datos en un formulario que se pueda pegar en MS Excel.

Helpful resources

Announcements
Sept PBI Carousel

Power BI Monthly Update - September 2024

Check out the September 2024 Power BI update to learn about new features.

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

Sept NL Carousel

Fabric Community Update - September 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors