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

Problema con acumulado de una medida

Hola a todos!!!!

Estoy queriendo acumular una medida y no me está funcionando. Más abajo presento la tabla. Allí la columna que no me funciona es la que llamo 'Acumulado Variación', esta columna lo que debiera hacer es ir acumulando por año lo que muestra la columna 'Variación Mensual' (0,00%+5,56%+0,00%+9,21%+ ....)

carlosmari_0-1634510403325.png

Tengo 3 medidas creadas:

  1. Indice = SUM(Tabla[Indice])
  2. Variación Mensual =

        VAR IndiceMesAnterior =

               CALCULATE([Indice],DATEADD(Calendario[Fecha],-1,MONTH))

       RETURN

            DIVIDE(([Indice]-IndiceMesAnterior), IndiceMesAnterior)

  1. Acumulado Variación =

           CALCULATE([Variación Mensual],DATESYTD(Calendario[Fecha]))

 

En la medida 2 lo que hago es calcular la variación mensual que hubo con el campo 'Indice'. Esta medida da la información correcta.

El problema lo tengo en la medida 3. En esta medida quiero ir acumulando por año lo que se muestra en la medida 2. Evidentemente la manera de acumular que estoy haciendo en la medida 3 no es correcta.

 

El resultado de la medida 3 ('Acumulado Variación'), debiera darme este resultado:

carlosmari_1-1634510439104.png

Cada una de estos resultados es la suma acumulada por año de la medida 2 ('Variación mensual').

 

Comparto link de archivo Power Bi donde está este proyecto para que Uds. puedan acceder:

file://CARLOS-MARI-UA/Users/Carlos%20Mar%ED/Google%20Drive/Prueba.pbix 

 

Muchas gracias por la ayuda que puedan brindarme.

 

Carlos

2 ACCEPTED SOLUTIONS
Syndicate_Admin
Administrator
Administrator

Hay @Syndicate_Admin ,

Por favor, pruebe:

Accumulated Variation =
IF (
    MIN ( Calendar[Datekey] ) <= CALCULATE ( MAX ( Table[DateKey] ), ALL ( Table ) ),
    CALCULATE (
        [Total ],
        FILTER (
            ALL ( Calendar[Datekey] ),
            Calendar[Datekey] <= MAX ( ( Calendar[Datekey] ) )
        )
    ),
    BLANK ()
)

Si no funciona, proporcione más detalles sobre su tabla.

Saludos
Eyelyn Qin
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

View solution in original post

Hola! Tema resuelto!!!! Muchas gracias!!!!!!!

View solution in original post

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

Hay @Syndicate_Admin ,

Parece que su problema se ha resuelto, ¿verdad?

Eyelyn9_0-1635732035923.png

Saludos
Eyelyn Qin

Hola! Tema resuelto!!!! Muchas gracias!!!!!!!

Syndicate_Admin
Administrator
Administrator

Hay @Syndicate_Admin ,

Perdón por mi respuesta tardía. Pero no pude obtener su archivo pbix. Puede consultar este blog para obtener información sobre cómo proporcionar datos de ejemplo en el Foro de Power BI

Saludos
Eyelyn Qin

Syndicate_Admin
Administrator
Administrator

Hay @Syndicate_Admin ,

Por favor, pruebe:

Accumulated Variation =
IF (
    MIN ( Calendar[Datekey] ) <= CALCULATE ( MAX ( Table[DateKey] ), ALL ( Table ) ),
    CALCULATE (
        [Total ],
        FILTER (
            ALL ( Calendar[Datekey] ),
            Calendar[Datekey] <= MAX ( ( Calendar[Datekey] ) )
        )
    ),
    BLANK ()
)

Si no funciona, proporcione más detalles sobre su tabla.

Saludos
Eyelyn Qin
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Evelyn, gracias por tu respuesta.

Probé el código que enviaste y funciona bien si es que utilizo para acumular la medida que llamo como 'Indice' que su código DAX es 'Indice = sum(Tabla[Indice])'. El problema lo tengo en que lo que necesito acumular es otra columna que también es una medida que la llamo 'Variación Mensual' (en el primer mensaje está el código de esta medida). Cuando uso el código que me enviaste y solamente cambio por esta medida, ahí se descompagina todo y da cualquier valor.

 

carlosmari_0-1634828339155.png

Evidentemente la medida 'Variación Mensual', que es la medida que necesito acumular, hace que la respuesta no sea la natural, como es que ocurre bien al usar la otra medida ('Indice') con el código que enviaste.

Comparto el URL del proyecto para que puedas ver de probarlo directamente (comparto el URL para colocar en el navegador ya que me da error cuando intento hacerlo a modo de acceso link):

file://CARLOS-MARI-UA/Users/Carlos%20Mar%ED/Google%20Drive/Prueba.pbix

 

Desde ya muchas gracias por tu ayuda.

 

Saludos,

 

Carlos.

carlosmari
Frequent Visitor

Mucha gracias por el la ayuda compartida. Probé el código, en las dos alternativas que mencionas, y no funciona.

Primero cree la medida 

d = CALCULATE(SUM(Tabla[Indice]),Filter(all('Calendario'), 'Calendario'[Fecha]<= Max(Calendario[Fecha])))
y luego la medida
Acumulado Variación = DIVIDE(SUM(Tabla[indice]),[d])
 
Luego probé modificando la medida d
d = CALCULATE(SUM(Tabla[Indice]),Filter(all('Calendario'), 'Calendario'[Fecha]<= EOMONTH(Max(Calendario[Fecha]),-1) )) 
 
pero tampoco funcionó. Comparto pantalla del resultado de esta última medida:
carlosmari_0-1634565257392.png

Si hubiera alguna otra idea estaría muy agradecido.

Syndicate_Admin
Administrator
Administrator

@Syndicate_Admin , Crear una medida como

D = CALCULATE(SUM(Table[Index]),Filter(all('Calendar'), 'Calendar'[Date]< = Max(Calendar[Date])))

o
D= CALCULATE(SUM(Table[Index]),Filter(all('Calendar'), 'Calendar'[Date]< = eomnoth(Max(Calendar[Date]),-1) ))

luego dividir

divide(SUMA(Tabla[Índice]),[D])

Mucha gracias por el la ayuda compartida. Probé el código, en las dos alternativas que mencionas, y no funciona.

Primero cree la medida 

d = CALCULATE(SUM(Tabla[Indice]),Filter(all('Calendario'), 'Calendario'[Fecha]<= Max(Calendario[Fecha])))
y luego la medida
Acumulado Variación = DIVIDE(SUM(Tabla[indice]),[d])
 
Luego probé modificando la medida d
d = CALCULATE(SUM(Tabla[Indice]),Filter(all('Calendario'), 'Calendario'[Fecha]<= EOMONTH(Max(Calendario[Fecha]),-1) )) 
 
pero tampoco funcionó. Comparto pantalla del resultado de esta última medida:
carlosmari_0-1634565257392.png

Si hubiera alguna otra idea estaría muy agradecido.

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.